更改MySQL的日期格式我试图让下面的查询工作,但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。”
我在做什么错? 谢谢
更改MySQL的日期格式我试图让下面的查询工作,但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。”
我在做什么错? 谢谢
你的列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”存储在数据库中,那么它只会比较“1992-11-06”。
你说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';
谢谢。就像保罗西格尔评论的那样。我没有用足够的小脑袋。 – benny
“之列DATE_STRING日期格式为: '%d%M%Y。'” - 那你为什么在查询中使用''%Y-%间%D''? –
f ....我想我必须使用目标格式。但当然这是一个愚蠢的想法。谢谢你的提示。 – benny