$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
如果$ 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
(我注意到这是成功的,因为数据库中都存在这两个日期。)
如果$ 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
不幸的是,输出永远不会像我预期的那样消失。发生这种情况是因为数据库中不存在这两个日期。我知道我的查询有问题。如果有人可以帮我解决这个问题会很棒。先谢谢!
答案 0 :(得分:0)
$result=mysql_query("SELECT * FROM attendance WHERE DATE(date) Between '$start_date' and '$end_date' order by date asc") or die(mysql_query);
OR
$result=mysql_query("SELECT * FROM attendance WHERE DATE(date) >='$start_date' and DATE(date) <='$end_date' order by date asc") or die(mysql_query);