TIMEDIFF
📄字数 716
👁️阅读量 加载中...
功能描述
返回 expr1
和 expr2
之间相差的时间。结果包含时分秒,精确到微秒。
语法格式
sql
TIMEDIFF(expr1, expr2)
输入参数
expr1
:DATETIME
、DATETIME WITH TIME ZONE
、TIME
或TIME WITH TIME ZONE
类型,或能隐式转换为上述类型的其他类型。expr2
:DATETIME
、DATETIME WITH TIME ZONE
、TIME
或TIME WITH TIME ZONE
类型,或能隐式转换为上述类型的其他类型。
提示
- 因
NULL
无具体的类型,当参数均为NULL
时,会产生异常E10100 候选函数出现多义性
,需要手动为参数指定具体的形参类型,如:TIMEDIFF(NULL::DATETIME, NULL::DATETIME)
。
输出结果
返回 INTERVAL HOUR TO SECOND
类型,任意输入参数为空字符串或 NULL
时,输出结果为 NULL
。
示例
sql
-- 计算'2007-12-31 23:59:59' 和 '2007-12-30' 之间相差的时间
SQL> SELECT TIMEDIFF('2007-12-31 23:59:59', '2007-12-30');
+-----------------------+
| EXPR1 |
+-----------------------+
| 47:59:59.000000 |
+-----------------------+
-- 计算'2010-11-30 23:59:59 +08:30' 和 '2010-12-31 23:59:59 +05:30' 之间相差的时间
SQL> SELECT TIMEDIFF('2010-11-30 23:59:59 +08:30', '2010-12-31 23:59:59 +05:30');
+-----------------------+
| EXPR1 |
+-----------------------+
| -744:00:00.000000 |
+-----------------------+
-- 计算'2010-12-31 10:10:20.654321' 和 '2010-12-30 23:59:59.123456' 之间相差的时间
SQL> SELECT TIMEDIFF('2010-12-31 10:10:20.654321', '2010-12-30 23:59:59.123456');
+-----------------------+
| EXPR1 |
+-----------------------+
| 10:10:21.530865 |
+-----------------------+