oracler日期函数相差六个月_Oracle日期型函数

Oracle日期型函数

Oracle日期类型函数是操作日期、时间类型的相关数据,返回日期时间类型或数字类型结果,常用的函数有:SYSDATE()、ADD_MONTHS()、LAST_DAY()、TRUNC()、ROUND()等等。

系统日期、时间函数:

SYSDATE函数:该函数没有参数,可以得到系统的当前时间。

案例代码:select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;

结果:

1541994543538_763145.png

SYSTIMESTAMP函数:该函数没有参数,可以得到系统的当前时间,该时间包含时区信息,精确到微秒。

案例代码:select systimestamp from dual;

结果:

1541994789725_100677.png

数据库时区函数:

DBTIMEZONE函数:该函数没有输入参数,返回数据库时区。

案例代码:select dbtimezone from dual;

结果:

1541995167741_159145.png

给日期加上指定的月份函数:

ADD_MONTHS(r,n)函数:该函数返回在指定日期r上加上一个月份数n后的日期。其中

r:指定的日期。

n:要增加的月份数,如果N为负数,则表示减去的月份数。

案例代码:select to_char(add_months(to_date('2018-11-12','yyyy-mm-dd'),1),'yyyy-mm-dd'),

to_char(add_months(to_date('2018-10-31','yyyy-mm-dd'),1),'yyyy-mm-dd'),

to_char(add_months(to_date('2018-09-30','yyyy-mm-dd'),1),'yyyy-mm-dd')

from dual;

结果:(如果指定的日期是月份的最后一天,返回的也是新的月份的最后一天,如果新的月份比指定的月份日期少,将会自动调回有效日期)

1542006458401_880361.png

月份最后一天函数:

LAST_DAY(r)函数:返回指定r日期的当前月份的最后一天日期。

案例代码:select last_day(sysdate) from dual;

结果:

1542007245417_504645.png

指定日期后一周的日期函数:

NEXT_DAY(r,c)函数:返回指定R日期的后一周的与r日期字符(c:表示星期几)对应的日期。

案例代码:select next_day(to_date('2018-11-12','yyyy-mm-dd'),'星期四') from dual;

结果:

1542007791557_652814.png

返回指定日期中特定部分的函数:

EXTRACT(time)函数:返回指定time时间当中的年、月、日、分等日期部分。

案例代码:select  extract( year from timestamp '2018-11-12 15:36:01') as year,

extract( month from timestamp '2018-11-12 15:36:01') as month,

extract( day from timestamp '2018-11-12 15:36:01') as day,

extract( minute from timestamp '2018-11-12 15:36:01') as minute,

extract( second from timestamp '2018-11-12 15:36:01') as second

from dual;

结果:

1542009259332_239695.png

返回两个日期间的月份数:

MONTHS_BETWEEN(r1,r2)函数:该函数返回r1日期和r2日期直接的月份。当r1>r2时,返回的是正数,假如r1和r2是不同月的同一天,则返回的是整数,否则返回的小数。当r1

案例代码:select months_between(to_date('2018-11-12', 'yyyy-mm-dd'),

to_date('2017-11-12', 'yyyy-mm-dd')) as zs, --整数

months_between(to_date('2018-11-12', 'yyyy-mm-dd'),

to_date('2017-10-11', 'yyyy-mm-dd')) as xs, --小数

months_between(to_date('2017-11-12', 'yyyy-mm-dd'),

to_date('2018-10-12', 'yyyy-mm-dd')) as fs --负数

from dual;

结果:

1542010300770_340399.png

日期截取函数:

ROUND(r[,f])函数:将日期r按f的格式进行四舍五入。如果f不填,则四舍五入到最近的一天。

案例代码:select sysdate, --当前时间

round(sysdate, 'yyyy') as year, --按年

round(sysdate, 'mm') as month, --按月

round(sysdate, 'dd') as day, --按天

round(sysdate) as mr_day, --默认不填按天

round(sysdate, 'hh24') as hour --按小时

from dual;

结果:

1542020047706_069447.png

TRUNC(r[,f])函数:将日期r按f的格式进行截取。如果f不填,则截取到当前的日期。

案例代码:select sysdate, --当前时间

trunc(sysdate, 'yyyy') as year, --按年

trunc(sysdate, 'mm') as month, --按月

trunc(sysdate, 'dd') as day, --按天

trunc(sysdate) as mr_day, --默认不填按天

trunc(sysdate, 'hh24') as hour --按小时

from dual;

结果:

1542012826296_394197.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值