写点什么

YashanDB AGE 函数

作者:YashanDB
  • 2025-04-09
    广东
  • 本文字数:739 字

    阅读完需:约 2 分钟

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
-----------------------------------
复制代码


用户头像

YashanDB

关注

全自研国产新型大数据管理系统 2022-02-15 加入

还未添加个人简介

评论

发布
暂无评论
YashanDB AGE函数_YashanDB_InfoQ写作社区