MySQL的STR_TO_DATE函数返回NULL
任何人都可以请帮我找出解决办法 - 我运行下面的查询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 - 我试过了,但它不起作用 –