TIME_FORMAT
📄字数 835
👁️阅读量 加载中...
功能描述
根据格式字符串格式化时间值。和 DATE_FORMAT() 函数类似,但仅包含小时、分钟、秒和微秒的格式说明符是有效的,其他格式说明符直接返回 0
或者根据年、月和日均为 0
来计算,返回计算后的结果。
提示
- 该函数不支持
DATE
、DATETIME
或DATETIME WITH TIME ZONE
日期类型格式的字符串。支持DATE
、DATETIME
或DATETIME WITH TIME ZONE
类型的函数请参考 DATE_FORMAT()。
语法格式
sql
TIME_FORMAT(expr1, expr2)
输入参数
expr1
:时间,TIME
或TIME WITH TIME ZONE
类型,或能隐式转换为TIME
或TIME WITH TIME ZONE
类型的其他类型。expr2
:格式串,VARCHAR
类型,如%H:%i:%s
。
格式串说明
格式符的详细说明,请参考 DATE_FORMAT() 函数。
提示
- 对于
%a
、%b
、%c
和%D
等和日期相关的格式说明符,建议使用 DATE_FORMAT() 函数来格式化包含日期和时间的值。 - 因
NULL
无具体的类型,当第一个参数为NULL
时,会产生异常E10100 候选函数出现多义性
,需要手动为参数指定具体的形参类型,如:TIME_FORMAT(NULL::TIME, NULL)
。 - 不支持修改显示日期和月份名称及其缩写的语言,默认为英文名称。
- 由于
TIME
类型只能精确到毫秒,所以使用%f
格式化TIME
类型的值,只能精确到毫秒。
输出结果
返回 VARCHAR
类型,任意输入参数为 NULL
时,输出结果为 NULL
。
示例
sql
-- 格式化时间值,返回格式化的结果
SQL> SELECT TIME_FORMAT('14:02:03.123456','%h:%i:%s %p');
+-------------+
| EXPR1 |
+-------------+
| 02:02:03 PM |
+-------------+
-- 格式化时间值,返回格式化的结果
SQL> SELECT TIME_FORMAT('22:23:01.123', '%H:%i:%S.%f');
+-----------------+
| EXPR1 |
+-----------------+
| 22:23:01.123000 |
+-----------------+
-- 格式化时间值,返回格式化的结果
SQL> SELECT TIME_FORMAT('22:23:00', '%T'), TIME_FORMAT('22:23:00', '%r');
+----------+-------------+
| EXPR1 | EXPR2 |
+----------+-------------+
| 22:23:00 | 10:23:00 PM |
+----------+-------------+