通过更新更改MySQL日期格式

时间:2017-02-27 12:01:33

标签: mysql date sql-update

我尝试让以下查询起作用,但0行会受到影响:

UPDATE table_x 
SET sql_date = DATE(STR_TO_DATE(date_string,'%Y-%m-%d')) 
WHERE sql_date = '0000-00-00'

date_string列中的日期格式为:'%d。%m。%Y'

我做错了什么? 感谢

2 个答案:

答案 0 :(得分:0)

您的列date_string已经是" yyyy-dd-mm",那么您想要更新的原因。 您仍然可以按照以下比较日期:

UPDATE table_x set sql_date = DATE(STR_TO_DATE(date_string,'%Y-%m-%d'))
WHERE date(sql_date) = '0000-00-00';

因此它会跳过时间戳并仅将日期与您的通过日期进行比较。 日期功能将仅从存储日期获得日期。所以如果" 1992-11-06 00:00:00"存储在DB中,然后它将只比较" 1992-11-06"。

答案 1 :(得分:0)

您说date_string的格式为'%d.%m.%Y'。但您错误地为'%Y-%m-%d'指定了STR_TO_DATE。此外,当您将字符串转换为日期时,您在此日期应用DATE。为什么呢?

UPDATE table_x 
SET sql_date = STR_TO_DATE(date_string, '%d.%m.%Y')
WHERE sql_date = '0000-00-00';