我有这个查询
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
但它不会回归!我做错了什么!! ??
答案 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()
对其第一个参数所采用的。