📅  最后修改于: 2023-12-03 14:53:50.005000             🧑  作者: Mango
在 MySQL 中,我们可以通过使用 STR_TO_DATE 函数将一个字符串转换为日期时间数据类型。该函数需要两个参数:
例如:
SELECT STR_TO_DATE('2019-03-01 10:30:00', '%Y-%m-%d %H:%i:%s');
这个查询将返回一个 DATETIME 类型的数据,其值为 '2019-03-01 10:30:00'。
下面是一些常用的格式标志符:
例如:
SELECT STR_TO_DATE('Mar 25 2019 4:05PM', '%b %d %Y %l:%i%p');
这个查询将返回一个 DATETIME 类型的数据,其值为 '2019-03-25 16:05:00'。
需要注意的是,如果字符串格式与指定的格式不对应,STR_TO_DATE 函数将返回 NULL。
下面是一个完整的例子,展示了如何将一个字符串转换为 DATE、TIME 和 DATETIME 类型的数据:
SELECT STR_TO_DATE('2019-03-01', '%Y-%m-%d') AS date_value,
STR_TO_DATE('10:30:00', '%H:%i:%s') AS time_value,
STR_TO_DATE('2019-03-01 10:30:00', '%Y-%m-%d %H:%i:%s') AS datetime_value;
这个查询将返回:
+------------+------------+---------------------+
| date_value | time_value | datetime_value |
+------------+------------+---------------------+
| 2019-03-01 | 10:30:00 | 2019-03-01 10:30:00 |
+------------+------------+---------------------+
如果你需要将字符串转换为 UNIX 时间戳,可以使用 UNIX_TIMESTAMP 函数。例如:
SELECT UNIX_TIMESTAMP(STR_TO_DATE('2019-03-01 10:30:00', '%Y-%m-%d %H:%i:%s'));
这个查询将返回一个整数,其值为 1551430200,即 '2019-03-01 10:30:00' 的 UNIX 时间戳。
总的来说,通过使用 STR_TO_DATE 函数,我们可以轻松地将一个字符串转换为日期时间数据类型。只需要知道字符串的格式,然后将其传递给函数即可。