我在选择不同月份的日期并在查询中使用date_format时出错。
我的记录时间戳列名为“call_date”,值为“2014-02-26 13:33:20”。
当我跑步时:
SELECT * FROM survey_answer WHERE DATE_FORMAT(call_date,'%d/%m/%Y') BETWEEN '22/02/2014' AND '28/02/2014'
结果是我所期望的那条线。
但是,如果我跑:
SELECT * FROM survey_answer WHERE DATE_FORMAT(call_date,'%d/%m/%Y') BETWEEN '22/02/2014' AND '01/03/2014'
没有结果。
答案 0 :(得分:0)
您的查询将不使用索引,因为您在条件中使用字段上的函数。
SELECT *
FROM survey_answer
WHERE call_date BETWEEN '2014-02-22' AND '2014-02-25'
您可以在客户端格式化日期。
答案 1 :(得分:0)
请注意,有关日期的MySQL内部格式为YYYY-MM-DD HH-MM-SS
而非DD-MM-YYYY
。如果你相应地改变它,它应该工作。
SELECT *
FROM survey_answer
WHERE call_date > "2014-02-22 00:00:00" AND
call_date < "2014-03-01 23:59:59"