Php 为手动插入的日期选择两个日期之间的数据

Php 为手动插入的日期选择两个日期之间的数据,php,mysql,date,Php,Mysql,Date,这是我的查询,用于选择两个日期之间的数据。我知道这是一个重复的问题,但他们对我的情况来说是个小问题 使用varchar数据类型的下拉列表手动将我存储的日期插入数据库中 问题:此查询的结果仅选择使用日期(dd)值的数据,而不比较整个日期字符串 这是我得到的结果,它也选择了第7个月的数据 SELECT * FROM users WHERE birthday BETWEEN '08-06' AND '15-06' 就像其他人在评论中写的一样,最好使

这是我的查询,用于选择两个日期之间的数据。我知道这是一个重复的问题,但他们对我的情况来说是个小问题

使用varchar数据类型的下拉列表手动将我存储的日期插入数据库中

问题:此查询的结果仅选择使用日期(dd)值的数据,而不比较整个日期字符串

这是我得到的结果,它也选择了第7个月的数据

            SELECT * FROM users 
            WHERE birthday BETWEEN '08-06' AND  '15-06'

就像其他人在评论中写的一样,最好使用datetime数据类型作为日期。你可以这样比较你的varchar日期

    bday
   09-06-1985
   08-06-1990
   09-07-1991

不要将日期存储为varchar。将它们存储为日期,否则它们将不会表现为日期,包括比较操作。但是用户通过下拉列表@jankaltoun选择日期您需要清理输入并将其转换/保存为日期。因此,他们的方法不能解决此类问题吗@Jankaltou你需要彻底重新考虑这一点。MySQL内置了这方面的功能,你工作太辛苦了。如果你不太在意这一点,考虑使用那些和用户输入方法。使用varchar进行查询非常困难。谢谢。但是可以使用dd-mm-yyyy存储日期吗?@AbhishekBurkule是的,
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')