[英]How to check if date stored in varchar field is a valid date or not in where clause of mysql query?
我想根據日期字段值更新 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
在這種情況下使用正則表達式。 詢問
WHERE `date_of_purchase` NOT REGEXP '^(0[1-9]|1[0-2])\\/(0[1-9]|[1-2][0-9]|3[0-1])\\/[0-9]{4}$'
STR_TO_DATE
傳遞的STR_TO_DATE
應為mmddYYYY
格式或更新STR_TO_DATE
函數的第二個參數以接受ddmmYYYY
格式的日期值。
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`, '%d/%m/%Y') IS NULL AND (`date_of_purchase` != '' OR `date_of_purchase` IS NOT NULL)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.