关于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;