要将日期、时间和时区转换为
MySQL
数字(INT)格式,可以使用
MySQL
的内置
函数
UNIX_TIMESTAMP()和CONVERT_TZ()。
首先,使用UNIX_TIMESTAMP()
函数
将日期和时间转换为UNIX时间戳(以秒为单位)。
SELECT UNIX_TIMESTAMP('2022-01-01 12:00:00') as timestamp;
+------------+
| timestamp |
+------------+
| 1641037200 |
+------------+
接下来,使用CONVERT_TZ()函数将UNIX时间戳转换为指定时区的时间。
SELECT CONVERT_TZ(FROM_UNIXTIME(1641037200), '+00:00', '+08:00') as converted_time;
+---------------------+
| converted_time |
+---------------------+
| 2022-01-01 20:00:00 |
+---------------------+
在上述示例中,'+00:00'表示原始时间的时区,'+08:00'表示要转换的目标时区。
最后,如果需要将转换后的时间再次转换为UNIX时间戳,可以继续使用UNIX_TIMESTAMP()函数。
SELECT UNIX_TIMESTAMP(CONVERT_TZ(FROM_UNIXTIME(1641037200), '+00:00', '+08:00')) as converted_timestamp;
+---------------------+
| converted_timestamp |
+---------------------+
| 1641037200 |
+---------------------+