str_to_date 更改年份数据 MySQL

str_to_date change year data MySQL

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

但是它将数据年份更改为 2020

product_history table:

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
...

%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