簡體   English   中英

MySQL STR_TO_DATE函數返回NULL

[英]MySQL STR_TO_DATE function returning NULL

誰能幫我找出解決方案-我正在執行以下查詢

SELECT STR_TO_DATE(order_date, '%d-%m-%Y') FROM `order_master`

它返回NULL但是我在表中有2行,其值分別為'Today'和'15 -08-2017',我想將varchar字段與date進行比較,嘗試了很多但不能成功。 謝謝。

SELECT STR_TO_DATE('15-08-2017', '%d-%m-%Y')

效果很好。 它產生DATE2017-08-15

SELECT STR_TO_DATE('Today', '%d-%m-%Y')

顯然不是。 它產生NULL。

如果返回NULL,則可以使用類似這樣的方法將當前日期替換為STR_TO_DATE()結果。

SELECT IFNULL(STR_TO_DATE('15-08-2017', '%d-%m-%Y'), CURDATE())

但是你最好的選擇是使用這樣的東西

SELECT IF('Today'=order_date, CURDATE(), STR_TO_DATE(order_date ,'%d-%m-%Y'));

這會將當前日期替換為Todayorder_date值,但將其他格式錯誤的order_date值保留為NULL值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM