<!–
MySQL 将字符串(string)类型转换为时间戳类型
在MySQL中,时间戳(timestamp)是十分重要的数据类型,它记录了事件发生的时间信息。然而,很多时候我们需要在MySQL中将字符串(string)类型转换为时间戳类型,这时候就需要用到一些函数。
阅读更多:
通过UNIX_TIMESTAMP函数将字符串转换为时间戳
UNIX_TIMESTAMP函数可以将符合格式的字符串转换为时间戳类型。下面是一个例子:
(adsbygoogle = window.adsbygoogle || []).push({});
SELECT UNIX_TIMESTAMP('2022-01-01 00:00:00') as ts;
这个查询会得到这样的结果:
+------------+
| ts |
+------------+
| 1640995200 |
+------------+
它将字符串’2022-01-01 00:00:00’转换为了对应的时间戳。
通过STR_TO_DATE函数将字符串转换为日期时间类型,然后使用UNIX_TIMESTAMP
如果字符串不是标准的日期时间格式,就需要使用STR_TO_DATE函数将它转换为日期时间类型,然后再用UNIX_TIMESTAMP转换为时间戳。下面是一个例子:
SELECT UNIX_TIMESTAMP(STR_TO_DATE('2022.01.01', '%Y.%m.%d')) as ts;
这个查询返回的结果是:
+------------+
| ts |
+------------+
| 1640995200 |
+------------+
它将字符串’2022.01.01’转换为日期时间类型,再将其转换为时间戳。
通过FROM_UNIXTIME函数将时间戳转换为日期时间类型
FROM_UNIXTIME函数可以将时间戳类型转换为日期时间类型。下面是一个例子:
(adsbygoogle = window.adsbygoogle || []).push({});
SELECT FROM_UNIXTIME(1640995200) as datetime;
这个查询会输出这样的结果:
+---------------------+
| datetime |
+---------------------+
| 2022-01-01 00:00:00 |
+---------------------+
它将时间戳1640995200转换为UTC时间2022-01-01 00:00:00。
总结
MySQL中时间戳类型记录着事件发生的时间信息。通过UNIX_TIMESTAMP函数可以将符合格式的字符串转换为时间戳类型;通过STR_TO_DATE函数将字符串转换为日期时间类型,再使用UNIX_TIMESTAMP函数将其转换为时间戳类型;通过FROM_UNIXTIME函数可以将时间戳类型转换为日期时间类型。这些函数的灵活运用可以满足不同的时间转换需求。