TIMESTAMPADD
📄字数 1.1K
👁️阅读量 加载中...
功能描述
在日期时间值上加上整数时间间隔。
语法格式
sql
TIMESTAMPADD(unit, interval, datetime)1
输入参数
unit:时间间隔单位,INTEGER类型,或能隐式转换为INTEGER类型的其他类型。interval:添加的时间间隔,INTEGER类型,或能隐式转换为INTEGER类型的其他类型。值可以为负数,表示减去的时间间隔。datetime:日期时间值,DATE、DATETIME或DATETIME WITH TIME ZONE类型,或能隐式转换为上述类型的其他类型。
第一个参数的取值说明
| 值 | 含义 |
|---|---|
| YEAR | 年 |
| QUARTER | 季度 |
| MONTH | 月 |
| WEEK | 周 |
| DAY | 天 |
| HOUR | 小时 |
| MINUTE | 分钟 |
| SECOND | 秒钟 |
| MICROSECOND | 微秒 |
提示
- 因
NULL无具体的类型,当第三个参数为NULL时,会产生异常E10100 候选函数出现多义性,需要手动为参数指定具体的形参类型,如:TIMESTAMPADD(YEAR, NULL, NULL::DATETIME)。 - 当第三个参数为
DATE类型时,第一个参数仅支持YEAR、QUARTER、MONTH、WEEK、DAY;否则函数返回NULL。若第一个参数为HOUR、MINUTE、SECOND、MICROSECOND,需要将第三个参数由DATE类型转换为DATETIME类型。
输出结果
返回 DATE、DATETIME 或 DATETIME WITH TIME ZONE 类型,输出结果的类型和第三个输入参数的类型一致,输入参数 interval 或 datetime 为空字符串或 NULL 时,输出结果为 NULL。
提示
- 返回的结果中,默认只精确到毫秒,如果需要返回的结果精确到微秒,需要借助
TO_CHAR()函数将时间进行格式化。例如:TO_CHAR(TIMESTAMPADD(MICROSECOND, 10, '2003-01-02 15:30:10.123456'), 'YYYY-MM-DD HH24:MI:SS.SSSSSS')。
示例
sql
SQL> SELECT TIMESTAMPADD(DAY, 2, '2003-01-02');
+--------------------------+
| EXPR1 |
+--------------------------+
| 2003-01-04 00:00:00.000 |
+--------------------------+
SQL> SELECT TIMESTAMPADD(MINUTE, 10, '2003-01-02 15:30:10.123');
+--------------------------+
| EXPR1 |
+--------------------------+
| 2003-01-02 15:40:10.123 |
+--------------------------+1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
