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