MySQL 如何将没有分隔符的数字和字符串解释为日期?

MySQL 如何将没有分隔符的数字和字符串解释为日期?

在MySQL中,将没有分隔符的数字和字符串解释为日期可以使用函数STR_TO_DATE()。STR_TO_DATE()函数将一个字符串解析为日期,并返回该日期。

阅读更多:MySQL 教程

语法

STR_TO_DATE(str, format)

其中str表示要解析为日期的字符串;format表示日期的格式。

下面是一些常用的日期格式:

格式 说明
%Y 4位年份
%y 2位年份
%m 月份
%d 日期
%H 小时
%i 分钟
%s

除了上面这些格式,还有其他的日期格式可供选择。关于日期的格式可在MySQL官网文档中查找。

示例

假设有以下数据表:

CREATE TABLE `test_date` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `date_str` varchar(20) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

其中,数据表中的date_str列的数据格式为“yyyymmdd”。

现在需要将这些数据解析为日期格式。可以使用下面的语句:

SELECT id, STR_TO_DATE(date_str, '%Y%m%d') AS date FROM test_date;

输出结果如下:

+----+------------+
| id | date       |
+----+------------+
|  1 | 2022-12-31 |
|  2 | 2022-05-01 |
|  3 | 2023-09-23 |
+----+------------+

在上面的SELECT语句中,STR_TO_DATE()函数将date_str列中的“yyyymmdd”格式的日期字符串解析为日期,并输出日期格式为“yyyy-mm-dd”。可以看到,输出结果的date列已经被解析成正确的日期格式。

除此以外,STR_TO_DATE()函数也可以解析带有分隔符的日期字符串。例如,可以使用下面的语句将“yyyy-mm-dd”格式的日期字符串解析为日期:

SELECT STR_TO_DATE('2022-12-31', '%Y-%m-%d') AS date;

输出结果如下:

+------------+
| date       |
+------------+
| 2022-12-31 |
+------------+

注意事项

在使用STR_TO_DATE()函数时,需要注意以下几点:

  1. 字符串和日期格式必须匹配。如果字符串和日期格式不匹配,会导致解析失败。
  2. 如果字符串和日期格式不匹配,STR_TO_DATE()函数会返回NULL。
  3. STR_TO_DATE()函数只能识别日期格式中的数字部分,对于其他字符部分会忽略。

结论

通过本文的介绍,可以学习到如何在MySQL中将没有分隔符的数字和字符串解释为日期。只需要使用STR_TO_DATE()函数,并提供相应的日期格式即可将字符串解析为日期。同时需要注意字符串和日期格式的匹配,否则会导致解析失败。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程