SQL日期函数

1,系统日期和时间:

  select sysdate value from dual;返回值:2017/11/14 15:19:45;

  系统日期:

  select trunc(sysdate) value from dual;返回值:2017/11/14;

  系统时间:

  select to_char(sysdate,'hh24:mm:ss') value from dual;返回值:15:11:55

2,计算时间差(比如秒):

  SELECT (d1-d2)*24*60*60 vaule FROM DUAL;返回值:精确到秒的时间差数值;

3,计算新的日期(比如分钟)

  SELECT sysdate+8/60/24 vaule FROM DUAL;返回值:当前时间加8分钟;

4,日期加减月份,正数为加,负数为减:

  Select add_months(sysdate,2) from dual;返回值:2018/1/14 16:00:34;

5,返回两日期之间的月数:MONTHS_BETWEEN(date1,date2);

  select months_between(sysdate,to_date('2016-11-12','yyyy-mm-dd'))from dual;返回值:12.0861114844683;

6,返回指定日期当月的最后一天:

  Select last_day(sysdate) from dual; 返回值:2017/11/30 15:59:06;

7,常用日期数据格式

  (1)Y或YY或YYY 年的最后一位,两位或三位 

  Select to_char(sysdate,’YYY’) from dual; 017表示2017年 

  (2)Q 季度,1~3月为第一季度

  Select to_char(sysdate,’Q’) from dual; 4表示第四季度

  (3)MM 月份数 Select to_char(sysdate,’MM’) from dual; 11表示11月 

  (4)Month 用9个字符长度表示的月份名

  Select to_char(sysdate,’Month’) from dual; 11月

  (4)DD 当月第几天

  Select to_char(sysdate,’DD’) from dual;11表示11日 

  (5)D 周内第几天

  Select to_char(sysdate,’D’) from dual;3表示本周第三天,星期二

  (6)HH或HH12 12进制小时数

  Select to_char(sysdate,’HH’) from dual; 

  (7)HH24 24小时制

  Select to_char(sysdate,’HH24’) from dual; 

  (8)MI 分钟数(0~59)

  Select to_char(sysdate,’MI’) from dual; 

  (9)SS 秒数(0~59)

  Select to_char(sysdate,’SS’) from dual;

8,上月最后一天:

  select to_char(add_months(last_day(sysdate),-1),'yyyyMMdd') LastDay from dual;

  上月当天:

  select to_char(add_months(sysdate,-1),'yyyy-MM-dd') PreToday from dual;

  上月第一天:

  select to_char(add_months(last_day(sysdate)+1,-2),'yyyy-MM-dd') firstDay from dual; 

9,select trunc(sysdate),trunc(sysdate,'HH24'),trunc(sysdate,'MI') from dual;结果:2017/11/16, 2017/11/16 10:00:00, 2017/11/16 10:21:00;

原文地址:https://www.cnblogs.com/xmqlv20081008/p/7832445.html