UNIX_TIMESTAMP
📄字数 762
👁️阅读量 加载中...
功能描述
返回日期时间值的UNIX时间戳,表示自 1970-01-01 00:00:00 UTC 以来经过的秒数。
语法格式
sql
UNIX_TIMESTAMP([expr])1
输入参数
expr:日期时间值,DATE或DATETIME类型,或能隐式转换为DATE或DATETIME类型的其他类型。如果expr早于1970-01-01 00:00:00 UTC,则返回值为负数,如果省略expr,则返回当前系统时间的UNIX时间戳。输入参数的范围:[0001-01-01 00:00:00.000000, 9999-12-31 23:59:59.999999]。
提示
- 因
NULL无具体的类型,所以当参数为NULL时,会产生异常E10100 候选函数出现多义性,需要手动为参数指定具体的类型,如:UNIX_TIMESTAMP(NULL::DATE)。
输出结果
输出结果类型见下表,输出结果的范围:[-62135596800, 253402300799.999999],输入参数为 NULL 时,输出结果为 NULL。
| 输入参数类型 | 输出结果类型 |
|---|---|
| - | BIGINT |
| DATE | BIGINT |
| DATETIME | NUMERIC |
提示
-表示无输入参数。- 版本
12.5之前,此函数返回值以毫秒为单位。 - 结果不会受时区影响。
示例
sql
-- 返回 '2012-10-01 15:32:45' 的UNIX时间戳
SQL> SELECT UNIX_TIMESTAMP('2012-10-01 15:32:45');
+------------+
| EXPR1 |
+------------+
| 1349105565 |
+------------+
-- 返回 '2012-10-01 15:32:45.211985' 的UNIX时间戳
SQL> SELECT UNIX_TIMESTAMP('2012-10-01 15:32:45.211985');
+-------------------+
| EXPR1 |
+-------------------+
| 1349105565.211985 |
+-------------------+
-- 返回 '1960-10-01 15:32:45.211985' 的UNIX时间戳
SQL> SELECT UNIX_TIMESTAMP('1960-10-01 15:32:45.211985');
+-------------------+
| EXPR1 |
+-------------------+
| -291889634.788015 |
+-------------------+1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
