【发布时间】:2019-02-02 21:49:54
【问题描述】:
我想根据日期字段值更新mysql表中的数据。
表由四个字段(id、file_id、date_of_purchase、error)组成。 date_of_purchase 和 error 是 varchar 字段。
如果日期中的值不是有效日期,现在我想更新错误字段。我尝试使用STR_TO_DATE() 函数,但它在update query 中的where clause 中不起作用
这是我的查询
UPDATE `temp_bulk_upload_data` SET `error`= 'Date of purchase: Date of purchase should be a valid date' WHERE `file_id`='190' AND STR_TO_DATE(`date_of_purchase`, '%m/%d/%Y') IS NULL AND (`date_of_purchase` != '' OR `date_of_purchase` IS NOT NULL)
在这个查询中我得到这个错误:
Error in query (1411): Incorrect datetime value: '27/8/2018' for function str_to_date
【问题讨论】:
-
您不应该使用 VARCHAR 字段来存储日期值。
-
@misorude 我知道,但它已经存在于数据中。
-
"但它已经存在于数据中" 你可以更改它
-
@MickaelLeger 我查过了。这是我不想使用 for 循环的不同之处。我想在单个查询中完成。