在mysql date_format之间无法正常工作

时间:2014-03-05 19:35:51

标签: mysql sql date between

我有这个查询

SELECT * 
FROM `users_profile` 
WHERE DATE_FORMAT(dob,'%d-%m-%Y') BETWEEN '05-03-1996' AND '05-03-1915'

应返回两个结果,这两个结果在dob列中都有这些日期

08-02-1996
14-02-1996

但它不会回归!我做错了什么!! ??

1 个答案:

答案 0 :(得分:2)

为什么你会把一个完美的日期转换成(坏)字符串进行比较?

将比较作为日期并按常规顺序放置常量:

SELECT * 
FROM `users_profile` 
WHERE dob BETWEEN date('1915-03-05') and date('1996-03-05');

另请注意,我将日期常量的日期格式更改为YYYY-MM-DD。这是日期的ISO标准格式。 (尽管如此),使用它是一个非常好的主意。

我假设dob确实是一个日期,因为这是函数date_format()对其第一个参数所采用的。