SELECT * FROM users
WHERE birthday BETWEEN '08-06' AND '15-06'
这是我在两个日期之间选择数据的查询。我知道这是一个重复的问题,但它对我的情况来说是轻微的问题。
使用下拉列表手动将我存储的日期插入到数据库中,该列表是varchar数据类型
问题:此查询的结果仅使用日期(dd)值选择数据,而不是比较整个日期字符串
这是我从第7个月开始选择数据的结果
bday
09-06-1985
08-06-1990
09-07-1991
答案 0 :(得分:1)
与其他人在评论中写道一样,最好将日期时间数据类型用于日期。你可以像这样比较你的varchar日期
SELECT * FROM users
WHERE STR_TO_DATE(birthday, '%d-%m')
BETWEEN STR_TO_DATE('08-06', '%d-%m')
AND STR_TO_DATE('15-06', '%d-%m')