📌  相关文章
📜  将字符串转换为日期时间 mysql (1)

📅  最后修改于: 2023-12-03 14:53:50.005000             🧑  作者: Mango

将字符串转换为日期时间 MySQL

在 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'。

下面是一些常用的格式标志符:

  • %Y:四位数的年份。
  • %m:两位数的月份,不足两位时前面补零。
  • %d:两位数的日期,不足两位时前面补零。
  • %H:24 小时制的小时数,不足两位时前面补零。
  • %i:分钟数,不足两位时前面补零。
  • %s:秒数,不足两位时前面补零。

例如:

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 函数,我们可以轻松地将一个字符串转换为日期时间数据类型。只需要知道字符串的格式,然后将其传递给函数即可。