在数据库中,我有表 users,其中包含“生日”列
这是我用来获取结果的 sql 查询
SELECT *
FROM (`users`)
WHERE `birthday` between '12/11/1982' and '31/01/1983'
问题是我只获得 1982 年的记录?
注意 1983 年的记录存在。
这可能是什么问题?
最佳答案
这只是 Mark Byers 的另一种回答。如果你的birthday
列的数据类型是varchar
并且格式是dd/MM/yyyy
,请阅读这个;否则,请阅读 Mark Byer's .
您需要做的第一件事是使用 STR_TO_DATE
将您的列转换为 DATE
或 DATETIME
数据类型,
SELECT *
FROM `users`
WHERE STR_TO_DATE(`birthday`,'%d/%m/%Y')
between '1982-01-12' and '1983-12-31'
来源
关于php - 日期之间的错误搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13346113/