Oracle关于日期函数使用的专题,小知识点

sysdate关键字
表示系统的当前时间
例如:
显示时间:当前时间
select sysdate from dual;

注意:sysdate进行加减操作的时候,单位是天
例如:
显示时间:明天的这个时候
select sysdate+1 from dual;

例如:
显示时间:昨天的这个时候
select sysdate-1 from dual;

例如:
显示时间:1小时之后的这个日期
select sysdate+1/24 from dual;


months_between 俩个日期之间相差多少个月(单位是月)
例如:
30天之后和现在相差多少个月
select months_between(sysdate+30,sysdate)
from dual;


add_months 返回一个日期数据:表示一个时间点,往后推x月的日期
例如:
'01-2月-2016'往后推2个月
select add_months('01-2月-2016',2)
from dual;

例如:
当前时间往后推4个月
select add_months(sysdate,4)
from dual;

注意:这个数字也可以是负数,表示往前推x月

next_day 返回一个日期数据:表示一个时间点后的下一个星期几在哪一天
例如:
离当前时间最近的下一个星期5是哪一个天
select next_day(sysdate,'星期五')
from dual;
注意:
如果要使用'FRIDAY',那么需要把当前会话的语言环境修改为英文


last_day 返回一个日期数据:表示一个日期所在月份的最后一天
例如:
当前日期所在月份的最后一天(月底)
select last_day(sysdate)
from dual;


round 对日期进四舍五入,返回操作后的日期数据
例如:
把当前日期四舍五入到月
select round(sysdate,'MONTH')
from dual;
测试:15号16号分别是舍弃还是进位

把当前日期四舍五入到年
select round(sysdate,'YEAR')
from dual;

//这个写法是错误的
//数字函数也有一个round
//俩个ronnd函数有冲突
//所以这里不能使用默认的日期格式
select round('01-2月-2016','MONTH')
from dual;

trunc 对日期进行截取 和round类似,但是只舍弃不进位

猜你喜欢

转载自www.cnblogs.com/fyscn/p/11574055.html