ORACLE日期函数大全

来源:互联网 发布:阿富汗 帝国坟场 知乎 编辑:程序博客网 时间:2024/05/29 07:29
1.Sysdate 获得当前日期和时间
select sysdate from dual


2.Last_day 本月最后一天 
select last_day(sysdate) from dual


3.Add_months(d,n) 当前日期d后推n个月 ,用于从一个日期值增加或减少一些月份 
select add_months(sysdate,-2) from dual


4.Months_between(f,s) 日期f和s间相差月数 
select months_between(sysdate,to_date('2010-10-03','yyyy-mm-dd')) from dual;


5.NEXT_DAY(d, day_of_week),返回由"day_of_week"命名的,在变量"d"指定的日期之后的第一个工作日的日期。参数"day_of_week"必须为该星期中的某一天。
SELECT next_day(sysdate,1) FROM dual;


6.current_date()返回当前会话时区中的当前日期 
select sessiontimezone,current_date from dual; 


7.current_timestamp()以timestamp with time zone数据类型返回当前会话时区中的当前日期
select sessiontimezone,current_timestamp from dual; 


8.dbtimezone()返回时区
select dbtimezone from dual;


9.extract()找出日期或间隔值的字段值 
select extract(month from sysdate) "This Month" from dual;


10.localtimestamp()返回会话中的日期和时间
select localtimestamp from dual;


11.Y或YY或YYY 年的最后一位,两位或三位
select to_char(sysdate,'YYYY') from dual


12.SYEAR使公元前的年份前加一负号
select to_char(sysdate,'SYEAR') from dual


13.Q 季度,1~3月为第一季度
select to_char(sysdate,'Q') from dual;


14.MM 月份数
select to_char(sysdate,'MM') from dual  


15.RM 月份的罗马表示
select to_char(sysdate,'RM') from dual


16.Month 用9个字符长度表示的月份名
select to_char(sysdate,'Month') from dual


17.WW 当年第几周
select to_char(sysdate,'WW') from dual


18.W 本月第几周
select to_char(sysdate,'W') from dual


19。DDD 当年第几
select to_char(sysdate,'DDD') from dual


20.DD 当月第几天
select to_char(sysdate,'DD') from dual


21.D 周内第几天
select to_char(sysdate,'D') from dual


22.DY 周内第几天缩写
select to_char(sysdate,'D') from dual


23.HH或HH12 12进制小时数
select to_char(sysdate,'HH') from dual


24.HH24 24小时制
select to_char(sysdate,'HH24') from dual


25.MI 分钟数(0~59)
select to_char(sysdate,'MI') from dual


26.SS 秒数(0~59) 
select to_char(sysdate,'SS') from dual


注意:不要将MM格式用于分钟(分钟应该使用MI)。MM是用于月份的格式,将它用于分钟也能工作,但结果是错误的。 


27.上月末天
select to_char(add_months(last_day(sysdate),-1),'yyyy-MM-dd') LastDay from dual;


28.上月首天
select to_char(add_months(last_day(sysdate)+1,-2),'yyyy-MM-dd') firstDay from dual;


29.按照每周进行统计
select to_char(sysdate,'ww') from dual group by to_char(sysdate,'ww');


30.按照每月进行统计
select to_char(sysdate,'mm') from dual group by to_char(sysdate,'mm');


31.按照每季度进行统计
select to_char(sysdate,'q') from dual group by to_char(sysdate,'q');


32.按照每年进行统计
select to_char(sysdate,'yyyy') from dual group by to_char(sysdate,'yyyy');
0 0