任何人都可以帮我找出解决方案 - 我正在运行以下查询
SELECT STR_TO_DATE(order_date, '%d-%m-%Y') FROM `order_master`
它正在返回NULL
但是我在表格中有2行,其值为'今天'和' 15-08-2017' ,我想比较varchar字段和日期,尝试了很多,但没有成功。谢谢。
答案 0 :(得分:0)
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'));
这会将当前日期替换为order_date
Today
的值,但会为其他格式错误的order_date
值保留NULL值。