MYSQL - 选择日期范围时出错

时间:2014-03-01 13:05:00

标签: mysql sql date

我在选择不同月份的日期并在查询中使用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'

没有结果。

2 个答案:

答案 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"

您还do not want to use BETWEEN on timestamps