UNIX_TIMESTAMP 函数
功能描述
UNIX_TIMESTAMP
函数用于获取当前时间或指定时间的 UNIX 时间戳(Unix timestamp),即从 1970 年 1 月 1 日 00:00:00 UTC 到指定时间的总秒数。如果不指定任何参数,默认返回当前时间的 UNIX 时间戳。
语法
unix_timestamp([expr [, fmt]])
参数说明
expr
:可以是 date、timestamp_ltz 或 string 类型,表示要转换为 UNIX 时间戳的时间。如果不指定该参数,则默认使用当前时间。
fmt
:字符串类型,表示输入时间的格式。如果不指定该参数,将根据系统默认的时间格式进行解析。
返回结果
返回一个 bigint 类型的值,表示 UNIX 时间戳。
使用示例
- 获取当前时间的 UNIX 时间戳:
SELECT UNIX_TIMESTAMP() as res;
+------------+
| res |
+------------+
| 1737447675 |
+------------+
- 获取指定时间的 UNIX 时间戳:
SELECT UNIX_TIMESTAMP('2022-02-23 10:00:00')as res;
+------------+
| res |
+------------+
| 1645581600 |
+------------+
- 获取指定时间格式的 UNIX 时间戳:
SELECT UNIX_TIMESTAMP('2022-02-23 10:00:00', 'yyyy-MM-dd HH:mm:ss')as res;
+------------+
| res |
+------------+
| 1645581600 |
+------------+
- 将字符串类型的时间转换为 UNIX 时间戳:
SELECT UNIX_TIMESTAMP('2022-02-23 10:00:00', 'yyyy-MM-dd HH:mm:ss')as res;
+------------+
| res |
+------------+
| 1645581600 |
+------------+
- 将 timestamp 类型的时间转换为 UNIX 时间戳:
SELECT UNIX_TIMESTAMP(TIMESTAMP "2022-02-23 10:00:00")as res;
+------------+
| res |
+------------+
| 1645581600 |
+------------+
- 将 date 类型的时间转换为 UNIX 时间戳:
SELECT UNIX_TIMESTAMP(DATE '2022-02-23')as res;
+------------+
| res |
+------------+
| 1645545600 |
+------------+
注意事项
- 当输入的时间格式不正确或无法识别时,函数将返回 NULL。
- 如果指定的时间超出了系统支持的时间范围,函数将返回 NULL。
- 在使用该函数时,建议明确指定输入时间的格式,以避免因系统默认时间格式不同而导致的解析错误。