SEC_TO_TIME
描述
SEC_TO_TIME 函数用于将以秒为单位的数值转换为 TIME 类型,返回格式为 HH:MM:SS
或 HH:MM:SS.ssssss
。输入的秒数表示从一天的起点时间(00:00:00.000000
)开始计算的时间。。该函数将输入的秒数解析为从一天起点时间(00:00:00)开始计算的时间偏移量,支持处理正负秒数及超出一天的时间范围。
该函数与 mysql 中的 sec_to_time 函数 行为一致
语法
SEC_TO_TIME(<seconds>)
参数
参数 | 说明 |
---|---|
<seconds> | 必填,输入的秒数,表示从一天起点时间(00:00:00)开始计算的秒数,支持正数或负数类型。 |
返回值
返回一个秒数转换为 TIME 类型的值
- 若输入秒数超出 TIME 类型的有效范围(-838:59:59 至 838:59:59,对应秒数范围 -3023999 至 3023999),返回 TIME 类型最大值或最小值
- 若输入为整型,则返回格式为
HH:MM:SS
, 若输入为浮点型,则返回格式为HH:MM:SS.ssssss
- 若输入为 NULL,返回 NULL;
举例
--- 正数秒数(当天时间)
SELECT SEC_TO_TIME(59738) AS result;
+----------+
| result |
+----------+
| 16:35:38 |
+----------+
--- 超出一天的秒数(自动转换为多小时)
SELECT SEC_TO_TIME(90061) AS result;
+----------+
| result |
+----------+
| 25:01:01 |
+----------+
--- 负数秒数(前一天的时间)
SELECT SEC_TO_TIME(-3600) AS result;
+----------+
| result |
+----------+
| -01:00:00 |
+----------+
--- 零秒(起点时间)
SELECT SEC_TO_TIME(0) AS result;
+----------+
| result |
+----------+
| 00:00:00 |
+----------+
--- 小数秒数
SELECT SEC_TO_TIME(3661.9) AS result;
+-----------------+
| result |
+-----------------+
| 01:01:01.900000 |
+-----------------+
--- 输入为NULL(返回NULL)
SELECT SEC_TO_TIME(NULL) AS result;
+--------+
| result |
+--------+
| NULL |
+--------+
--- 超出TIME类型范围,返回 TIME 类型最大值或最小值
SELECT SEC_TO_TIME(30245000) AS result;
+-----------+
| result |
+-----------+
| 838:59:59 |
+-----------+
SELECT SEC_TO_TIME(-30245000) AS result;
+------------+
| result |
+------------+
| -838:59:59 |
+------------+