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