mysql - 日期从 yyyy-mm-dd 转换为 yyyy-mm-dd 转换年份到日期

标签 mysql sqldatetime

我已将数据从旧数据库迁移到新数据库,其中日期被视为varchar,我已成功迁移数据,但日期存在问题。在旧数据库中,日期格式为25-01-02,其中25是日,01是月份,02是年。但我的脚本将其转换为 2025-01-02。我如何在 SQL 中修复它?

TEST case:
DATE                  OUTPUT
2025-05-01            2001-05-25
2002-08-16            2016-08-02
2031-01-01            2001-01-31
2028-08-16            2016-08-28
2001-05-01            2001-05-01

最佳答案

您可以使用STR_TO_DATE轻松转换,如下所示:

SELECT STR_TO_DATE('25-01-02', '%d-%m-%y');

示例

mysql> SELECT STR_TO_DATE('25-01-02', '%d-%m-%y');
+-------------------------------------+
| STR_TO_DATE('25-01-02', '%d-%m-%y') |
+-------------------------------------+
| 2002-01-25                          |
+-------------------------------------+
1 row in set (0,00 sec)

mysql>

参见手册:https://mariadb.com/kb/en/mariadb/str_to_date/

关于mysql - 日期从 yyyy-mm-dd 转换为 yyyy-mm-dd 转换年份到日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44351844/

相关文章:

php insert into mysql 成功并返回insert id,但是mysql数据库没有记录,为什么?

php - MYSQL中的2个表的查询

MySQL按日期大间隔查询

java - 哪个时区是 java.sql.Date toLocalDate 使用

android - 如何格式化从数据库中检索的日期

c# - .NET DateTime 到 SqlDateTime 的转换

sql - 将 varchar 时间(时间 > 24 小时)转换为 float

mysql - 用连接表在mysql更新查询中乘以替换

php - 查询仅显示表中的第一个条目 - 错误!

mysql - 映射列表的 SQL 查询语法