SQL 中使用 STR_TO_DATE 的日期转换查询

Posted

技术标签:

【中文标题】SQL 中使用 STR_TO_DATE 的日期转换查询【英文标题】:Date conversion query in SQL using STR_TO_DATE 【发布时间】:2021-12-29 01:58:11 【问题描述】:

在我的表格中,有一个日期列,即 ORDER DATE,格式为 dd-mm-yyyy,该日期列的数据类型为文本。现在,我想从 yyyy-mm-dd 转换格式。但是日期格式根本没有改变。尝试使用 STR_TO_DATE 但日期中的年份仅为 2020 年。不知道如何修复它,或者是否有更好的方法来转换 mysql 中的日期。

例如:

SELECT STR_TO_DATE('14-09-2017','%d-%m-%y') AS DATE;
Result coming as 2020-09-14

或者假设

SELECT STR_TO_DATE('20-MAR-2018','%d-%b-%y') AS DATE;
Result coming as 2020-03-20

日期和月份正常到来,但年份没有到来。请帮助如何正确转换日期格式。

【问题讨论】:

检查 documentation %Y 的四位数年份 "此日期列的数据类型是文本。" - 从不将日期值存储为字符串。 【参考方案1】:

尝试像下面这样更改您的命令,您将得到答案: SELECT STR_TO_DATE('14-09-2017','%d-%m-%Y') AS DATE;

有关命令的更多信息,请参阅documentation。

【讨论】:

感谢已解决的帮助问题。有什么办法可以更改此日期“14-09-2017”的数据类型,它是文本类型,格式类似于 dd-mm-yyyy?如果它在那里,那么我将更改该日期列的数据类型并将其用作日期列。

以上是关于SQL 中使用 STR_TO_DATE 的日期转换查询的主要内容,如果未能解决你的问题,请参考以下文章

SQL-将BIGINT(20)转换为日期时间数据类型

SQL中的日期和时间转换查询

如何在 SQL 中将 varchar 字段 (YYYYMM) 转换为日期 (MM/01/YY)?

SQL中两个日期的查询语句怎么写?

sql中将字符串和时间格式的互相转换:date_format()str_to_date()

sql中将字符串和时间格式的互相转换:date_format()str_to_date()