数据库系列 - 关于oracle里的trunc()&&months_between的函数使用说明

计算多少岁

(trunc(months_between(sysdate,nain.BIRTH) / 12)

trunc()
ORACLE中TRUNC是截取或者对数字来说四舍五入的函数
用在日期类型上,就是截取到日或时间

e.g
1, SELECT TRUNC(SYSDATE) FROM DUAL;
默认是截取系统日期到日,得到2012-12-19

2, 比如值为"2012-12-19 14:30:50"的日期变量
TRUNC(SYSDATE)得到 2012-12-19 , 和TRUNC(SYSDATE,‘DD’)一样
TRUNC(SYSDATE,‘YYYY’),得到2012-1-1
TRUNC(SYSDATE,‘MM’),得到2012-12-1
TRUNC(SYSDATE,‘DD’),得到2012-12-19
TRUNC(SYSDATE,‘HH’)或HH24,得到2012-12-19 14:00:00
TRUNC(SYSDATE,‘MI’),得到2012-12-19 14:30:00
TRUNC(SYSDATE,‘SS’),是会报错的,
直接用SYSDATE不用TRUNC 另外说明一下,截取后得到的仍为date数据类型

MONTHS_BETWEEN (date1, date2)
MONTHS_BETWEEN (date1, date2)用于计算date1和date2之间有几个月。
如果date1在日历中比date2晚,那么MONTHS_BETWEEN()就返回一个正数。
如果date1在日历中比date2早,那么MONTHS_BETWEEN()就返回一个负数。
如果date1和date2日期一样,那么MONTHS_BETWEEN()就返回一个0。
add_months(time,months): 可以得到某一时间之前或之后n个月的时间;

查询当前时间2个月以前的时间:
select add_months(sysdate,-2) from dual;

查询当前时间2个月以后的时间:
select add_months(sysdate,2) from dual;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值