以下内容从我的数据库中返回一串行:
USE test;
SELECT * FROM aaaa
WHERE dddd BETWEEN (NOW() - INTERVAL 42 DAY) AND (NOW() + INTERVAL 42 DAY)
但由于原因,我不明白以下查询不会返回任何内容:
USE test;
SELECT * FROM aaaa
WHERE dddd BETWEEN (STR_TO_DATE('2014/6/6', '%Y,%m,%d') - INTERVAL 42 DAY) AND (STR_TO_DATE('2014/6/6', '%Y,%m,%d') + INTERVAL 42 DAY)
它不应该返回相似数量的行吗?它是在同一天那么为什么,当我将它转换为datetime时,它什么都没有返回?我没有错。
答案 0 :(得分:0)
你传递了一个/
- 分开的日期,但告诉MySQL它是,
- 分开了。由于您的字符串中没有,
,因此格式不适用,并且您的日期无效。
尝试
STR_TO_DATE('2014/6/6', '%Y/%m/%d')
,而不是...
“无效 - 42天=无效”,而不是42天前。
答案 1 :(得分:0)
你应该使用
STR_TO_DATE('2014/6/6', '%Y/%m/%d')
请注意日期格式中的/
而不是,
。 ;)