【发布时间】:2016-07-08 02:28:08
【问题描述】:
这很好用:
SELECT DISTINCT customers
FROM customertable
WHERE time_paid BETWEEN '2016-06-28 10:27:55' AND '2016-07-05 14:07:51';
但是,由于我使用 javascript datepicker 让用户选择日期期间并且只有日期但没有时间,这显然不起作用:
SELECT DISTINCT customers
FROM customertable
WHERE time_paid BETWEEN '2016-06-28' AND '2016-07-05';
我的选择语句是这样的:$t1 是小日期,而 $t2 是大日期。
$sql = "SELECT DISTINCT customertable FROM customer WHERE time_paid BETWEEN '$t1' AND '$t2'";
$result = mysqli_query($conn, $sql);
$rowcount = mysqli_num_rows($result);
有没有一种方法可以在我的 select 语句中插入一个连接的日期,比如 '$t1'.12.00.00,以便在选择时处理我的数据库中的完整 DATETIME 条目?
【问题讨论】:
-
(1) 怎么不行?日期格式很好。 (2) 为什么不使用参数化查询?您不应该在查询字符串中嵌入参数值。
-
用户应该使用javascript日期选择器日历来选择日期间隔。但是,日期选择器只有月份的日期,没有时间。适用于日期和时间,但不适用于仅日期
-
您确定日期选择器以
YYYY-MM-DD格式返回日期吗? -
只要确保
$t1和$t2从 JS 端提供正确的格式,正如 Gordon 所说,您应该使用准备好的语句来代替 -
WHERE time_paid BETWEEN '$t1 00:00:00' AND '$t2 00:00:00'应该可以正常工作。你试过了吗?