2014-03-01 152 views
-1

我在查询中选择不同日期的日期和使用date_format时出错。MYSQL - 选择日期范围时出错

我有一个名为'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

请注意,有关日期的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

+1

对..这是我遵循的方式..谢谢! – aemerich

0

您的查询不会使用索引,因为您在条件字段中使用functoin。

SELECT * 
FROM survey_answer 
WHERE call_date BETWEEN '2014-02-22' AND '2014-02-25' 

您可以在客户端格式化日期。