mysql日期与格式之间不工作
我有这个疑问mysql日期与格式之间不工作,mysql,sql,date,between,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 但是它不会回来的!!我做错了什么 为什么要选择一个完美的日期并将其转换为(坏的)字符串进行比较 按日期进行比较,并将常数按正确顺序排列: SELECT * FROM `us
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
但是它不会回来的!!我做错了什么 为什么要选择一个完美的日期并将其转换为(坏的)字符串进行比较 按日期进行比较,并将常数按正确顺序排列:
SELECT *
FROM `users_profile`
WHERE dob BETWEEN date('1915-03-05') and date('1996-03-05');
还请注意,我将日期常量的日期格式更改为YYYY-MM-DD。这是日期的ISO标准格式。(尽管如此),使用它确实是一个好主意
我假设
dob
确实是一个日期,因为这是函数date\u format()
的第一个参数。这就是为什么永远不应该将日期存储为字符串。日期是MySQL中的头等公民。将日期存储为日期,并从MySQL内置的日期功能中获益。将dob
字段转换为date
字段。同样值得一提的是:此版本也可以更快,因为它不需要完整的表扫描。