计算多少岁
(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;