由于某种需要,要在Oracle的视图里计算推迟两个小时的时间,找了半天,原来是类似
select sysdate+2/24 from dual
如果是分钟、秒数的推迟或提前,同样是折算成天数计算。还有另一种,用INTERVAL函数,如
select sysdate+interval '2' hour from dual
day/hour/minute/second,从天、小时、分钟到秒,都行。和上面那个计算方法是一样的结果。
顺便找一些其它的Oracle日期时间计算函数与方法,举例如下:
24小时时间格式:to_char(sysdate,‘yyyy-mm-dd hh24:mi:ss'),12小时是hh12,如果是to_char(sysdate,'q'),表示取第几季度,’month'表月份名称,中英文看你的系统,'ww‘表当年第几周,'w'表当月第几周,'ddd'当年第几天,’dd'当月第几天,即日期,'d'当周第几天,星期天算第一天,'dy'星期的名称,中英文看你系统。
本月最后一天的日期:last_day(sysdate)
当前日期后推2个月的日期(前推就是负数):add_months(sysdate,2)
计算相差月数(只要月数,不要小数,加trunc):months_between(日期1,日期2),前个日期减后日期,包含时间。
下一个星期几的日期(含时间):next_day(sysdate,weekday),weekday为1到7,或星期几的英文全称或简称,也可以是中文,同样一周以星期日为第一天 。
抽取日期时间中的年、月、日:如extract(month from sysdate),抽取分、秒,在extract后面就不能日期型的数据,要用时间型了,至少到用to_timestamp转化一下,当然直接用to_char转换字符取'hh24'或'hh12'、'mi'、'ss'也是可以的。
>> 除非说明均为原创,如转载请注明来源于http://www.stormcn.cn/post/1930.html