YashanDB AGE函数

AGE函数用于计算年龄,可以接受一个或两个参数,并返回一个INTERVAL YEAR TO MONTH类型的数值。

本函数遵循如下规则:

  • 一个参数时,函数使用当前时间减去该参数值,获得时间差。
  • 两个参数时,函数使用第一个参数值减去第二个参数值,获得时间差。

时间差计算规则:

  • 年差:当月差达到12个月时,进位为1年。
  • 月差:按两个数的月、日分别对比,月相等时,月差为0;月不等时(假设相差A),对比日/时/分/秒/微秒:
  • A为正数时,被减数值大于等于减数值时,月差为A,否则为A-1。
  • A为负数时,被减数值小于等于减数值时,月差为A,否则为A+1。

expr1、expr2

expr1、expr2为通用表达式,其值须为DATE、TIMESTAMP类型,或可以转换为DATE、TIMESTAMP类型的字符型。

  • 对于其他类型,函数返回类型错误信息。
  • 当expr1和expr2中任意一个为NULL时,函数返回NULL。

示例

SELECT AGE('2000-1-1') res FROM DUAL;
RES             
--------------- 
+22-08 

--月差达到12个月时,进位为1年
SELECT AGE('2020-7-31 09:08:00.72','2021-7-31 09:08:00.99') res FROM DUAL;
RES             
--------------- 
-01-00 

--月值差为负数时
SELECT AGE('2020-7-31 09:08:00.72','2021-8-31 09:08:00.66') res FROM DUAL;
RES             
--------------- 
-01-00 

SELECT AGE('2020-7-31 09:08:00.72','2021-8-31 09:08:00.99') res FROM DUAL;
RES             
--------------- 
-01-01   

--月值差为正数时
SELECT AGE('2022-7-31 09:08:00.72','2021-8-31 09:08:00.66') res FROM DUAL;
RES             
--------------- 
+00-11  

SELECT AGE('2022-7-31 09:08:00.72','2021-8-31 09:08:00.99') res FROM DUAL;
RES             
--------------- 
+00-10
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值