oracle 知道一个date类型的日期怎么计算年龄

select floor(months_between(sysdate,t.csny)/12) as age from rs_person_base t;

而且你少打了一个左括号吧 ,很简单的一句

oracle取整 oracle取整点时间oracle取整 oracle取整点时间


oracle取整 oracle取整点时间


select (to_char(sysdate,'YYYY')-to_char(t.csny, 'YYYY')) age from rs_person_base tmonths_between 日期相的月份数

floor 向下取整

select (to_date(sysdate, 'yyyyMMDD') - t.csny)/365 age from rs_person_base t

Oracle PL/SQL 计算年龄

如果,计算年龄用的次数非常多,写成自定义函数。

用Oracle提供的months_between()函数,先获取出生日期和当前日期的月数,然后除以12向下取整:

简单分析一下,加入一个孩子五岁半了,那习惯认为他还是5岁。

使用的时候,将时间段替换成出生日期对应的字段即可。

如何在Oracle中计算时间

很明显不对,你拿个date类型去减字符串类型,肯定出错

一旦你发现了时间异,你可以使用简单的技巧来以天、小时、分钟或者秒为单位来计算时间。为了得到数据,你必须选择合适的时间度量单位,这样就可以进行数据格式隐藏。 使用完善复杂的转换函数来转换日期是一个,但是你会发现这不是的解决方法。 round(to_number(end-date-start_date))- 消逝的时间(以天为单位) round(to_number(end-date-start_date)24)- 消逝的时间(以小时为单位) round(to_number(end-date-start_date)1440)- 消逝的时间(以分钟为单位) SQL select sysdate-(sysdate-3) from dual; SYSDATE-(SYSDATE-3) -------------------3这里,我们看到了Oracle使用天来作为消逝时间的单位,所以我们可以很容易的使用转换函数来把它转换成小时或者分钟。然而,当分钟数不是一个整数时,我们就会遇到放置小数点的问题。 Select(sysdate-(sysdate-3.111))1440fromdual;(SYSDATE-(SYSDATE-3.111))1440 -----------------------根据出生日期查询年龄用的还挺多的。------- 4479.83333 当然,我们可以用ROUND函数(即取整函数)来解决这个问题,但是要记住我们必须首先把DATE数据类型转换成NUMBER数据类型。