MySQL STR_TO_DATE函数返回NULL

时间:2017-08-09 15:27:39

标签: php mysql date datetime

任何人都可以帮我找出解决方案 - 我正在运行以下查询

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

它正在返回NULL但是我在表格中有2行,其值为'今天'和' 15-08-2017' ,我想比较varchar字段和日期,尝试了很多,但没有成功。谢谢。

1 个答案:

答案 0 :(得分:0)

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'));

这会将当前日期替换为order_date Today的值,但会为其他格式错误的order_date值保留NULL值。