1
$result=mysql_query("SELECT * FROM attendance WHERE date Between '$start_date' and '$end_date' order by date asc") or die(mysql_query);

上面的mysql查询是获取用户选择的两个日期之间数据库中的所有数据。假设我的数据库中的表出勤率如下所示

2009-07-01    3
2009-07-03    4
2009-07-04    5
2009-07-06    7
2009-07-07    6
2009-07-10    8
  1. 如果 $start_date = "2009-07-01" 和 $end_date = "2009-07-10",它将显示两个选定日期之间的所有数据

    2009-07-01    3
    2009-07-03    4
    2009-07-04    5
    2009-07-06    7
    2009-07-07    6
    2009-07-10    8
    

(我注意到这是成功的,因为这两个日期都存在于数据库中)。

  1. 如果 $start_date = "2009-07-02" 和 $end_date = "2009-07-09",我希望它显示的是

    2009-07-03    4
    2009-07-04    5
    2009-07-06    7
    2009-07-07    6
    

不幸的是,输出永远不会像我预期的那样。发生这种情况是因为数据库中不存在这两个日期。我知道我的查询有问题。如果有人可以帮助我解决这个问题,那就太好了。先谢谢了!

4

1 回答 1

-1
$result=mysql_query("SELECT * FROM attendance WHERE DATE(date) Between '$start_date' and '$end_date' order by date asc") or die(mysql_query);

或者

$result=mysql_query("SELECT * FROM attendance WHERE DATE(date) >='$start_date' and DATE(date) <='$end_date' order by date asc") or die(mysql_query);
于 2013-09-14T14:29:07.917 回答