str_to_date 更改年份数据 MySQL

Posted

技术标签:

【中文标题】str_to_date 更改年份数据 MySQL【英文标题】:str_to_date change year data MySQL 【发布时间】:2020-11-07 07:26:35 【问题描述】:

我正在尝试将我的日期格式 mm/dd/yyyy 更改为 mysql 格式 yyyy-mm-dd

但它将数据年份更改为2020

product_history 表:

log_date    id      stock
10/30/2018  1001    59    
10/30/2018  1002    35   
10/30/2018  1003    54    
10/30/2018  1004    40   
10/30/2018  1005    5     
10/30/2018  1006    20   
10/30/2018  1007    69   
...

这是我的代码:

SELECT *, str_to_date(my_schema.product_history.log_date, '%m/%d/%y') as new_log_date FROM my_schema.product_history

输出:

log_date    id      stock new_log_date
10/30/2018  1001    59    2020-10-30
10/30/2018  1002    35    2020-10-30
10/30/2018  1003    54    2020-10-30
10/30/2018  1004    40    2020-10-30
10/30/2018  1005    5     2020-10-30
10/30/2018  1006    20    2020-10-30
10/30/2018  1007    69    2020-10-30
...

【问题讨论】:

my_schema.product_history.log_date 的输出是什么? 【参考方案1】:

%y 以两位数表示年份。由于您有四位数字,因此您应该改用%Y

SELECT *, str_to_date(my_schema.product_history.log_date, '%m/%d/%Y') AS new_log_date 
-- Here ----------------------------------------------------------^
FROM   my_schema.product_history

【讨论】:

谢谢。通过将%y 更改为%Y,年份数据是正确的。

以上是关于str_to_date 更改年份数据 MySQL的主要内容,如果未能解决你的问题,请参考以下文章

STR_TO_DATE() 从正确的格式返回错误的数据

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

#1411 - INSERT INTO...SELECT 上函数 str_to_date 的日期时间值不正确

更改SqlServer datatime类型字段中的年份

使用 str_to_date 函数从文件中将数据加载到 MySQL 中的日期时间值不正确

更改线性回归的 X 和 Y 变量