任何人都可以請幫我找出解決辦法 - 我運行下面的查詢MySQL的STR_TO_DATE函數返回NULL
SELECT STR_TO_DATE(order_date, '%d-%m-%Y') FROM `order_master`
它返回NULL
但是我有表2點中的行與值「今天」和'15 -08-2017',我想比較varchar字段與日期,嘗試了很多,但不能成功。謝謝。
任何人都可以請幫我找出解決辦法 - 我運行下面的查詢MySQL的STR_TO_DATE函數返回NULL
SELECT STR_TO_DATE(order_date, '%d-%m-%Y') FROM `order_master`
它返回NULL
但是我有表2點中的行與值「今天」和'15 -08-2017',我想比較varchar字段與日期,嘗試了很多,但不能成功。謝謝。
SELECT STR_TO_DATE('15-08-2017', '%d-%m-%Y')
工作得很好。它產生DATE
的值2017-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'));
這將取代當前日期的Today
的order_date
值,但留在原地的NULL值,其他畸形order_date
值。
謝謝你的回答,但問題是'order_date'字段的'整理',它是'utf32_general_ci',我將它改爲'utf8_unicode_ci',現在它正在工作。 –
請在您的答案中包含我的解決方案,它可能會幫助他人。非常感謝!! –
記住「不工作」不是一個非常有用的診斷。 – tadman
另外「今日」不是有效日期。 – tadman
@FarhadHemmati - 我試過了,但它不起作用 –