跳到主要内容
版本:Latest-3.2

unix_timestamp

功能

将 DATE 或 DATETIME 类型的值转化为 UNIX 时间戳。

如果未指定参数,则将当前的时间转化为 UNIX 时间戳。

对于在 1970-01-01 00:00:00 之前或 2038-01-19 11:14:07 之后的时间,该函数将返回 0。

fmt 的格式请参阅 date_format 函数的格式说明。

该函数受时区影响,具体参见 设置时区

语法

INT UNIX_TIMESTAMP()
INT UNIX_TIMESTAMP(DATETIME date)
INT UNIX_TIMESTAMP(DATETIME date, STRING fmt)

参数说明

参数必须是 DATE 或 DATETIME 类型。

示例

select unix_timestamp();
+------------------+
| unix_timestamp() |
+------------------+
| 1558589570 |
+------------------+

select unix_timestamp('2007-11-30 10:30:19');
+---------------------------------------+
| unix_timestamp('2007-11-30 10:30:19') |
+---------------------------------------+
| 1196389819 |
+---------------------------------------+

select unix_timestamp('2007-11-30 10:30-19', '%Y-%m-%d %H:%i-%s');
+---------------------------------------+
| unix_timestamp('2007-11-30 10:30-19') |
+---------------------------------------+
| 1196389819 |
+---------------------------------------+

select unix_timestamp('2007-11-30 10:30%3A19', '%Y-%m-%d %H:%i%%3A%s');
+---------------------------------------+
|unix_timestamp('2007-11-30 10:30%3A19')|
+---------------------------------------+
| 1196389819 |
+---------------------------------------+

select unix_timestamp('1969-01-01 00:00:00');
+---------------------------------------+
| unix_timestamp('1969-01-01 00:00:00') |
+---------------------------------------+
| 0 |
+---------------------------------------+