2011-09-26 86 views
0

这列“日期”的格式:所有SQL/PHP的日期和时间(其它格式)之间进行选择

2011-08-03 13:36:19 

什么我希望做的是使一个SQL查询它选择了所有entrys在两个日期之间。

我的两个日期来自一个datepicker:

从2011-09-20到2011-09-25

现在我不能做WHERE date BETWEEN '2011-09-20' AND '2011-09-25'

因为也有在列日时间,就像你上面看到的那样。

那么我该如何做到这一点?我可以做BETWEEN 2011-09-20 00:00:00 AND 2011-09-25 00:00:00吗?

回答

1

如果要包括25个,你就必须去

BETWEEN '2011-09-20 00:00:00' AND '2011-09-25 23:59:59' 
1

你回答了自己的问题:补零的时间。这是有道理的,因为00:00:00是午夜,并且表示有一天切换到下一个时刻。

0

这两个条件在逻辑上是等价的(尽管你的第二个条件有一个语法错误,因为你缺少单引号)。

您可能需要将时间添加到结束日期。您需要添加23:59:59来表示一天结束,因此它包含当天的所有时间。

您可以通过追加结束日期字符串(假设它是来自输入名称为end_date的表单的POST数据)来完成此操作。

$end_date = $_POST['end_date'] . ' 23:59:59'; 

注:不要忘记SQL Injection