在sql.php中选择日期和日期(其他格式)之间的所有值


Select all between date and date (other format) in sql / php

这是"日期"列中的格式:

2011-08-03 13:36:19

我想做的是生成一个sql查询,它选择两个日期之间的所有条目。

我的两个约会来自一个日期选择器:

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吗?

如果你想包括第25个,你必须使用

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

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

这两个条件在逻辑上是等价的(尽管第二个条件由于缺少单引号而出现语法错误(。

你可能是想把时间加到结束日期上。您需要添加23:59:59来表示一天的结束,这样它就包括了当天的所有时间。

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

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

注意:不要忘记SQL注入。