【问题标题】:MYSQL SELECT statement using DATETIME with no timeMYSQL SELECT 语句使用没有时间的 DATETIME
【发布时间】:2016-11-07 14:38:07
【问题描述】:

这很好用:

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 条目?

【问题讨论】:

  • where date(time_paid) between ...,然后。
  • 是的,你可以做 $t1 = $t1 . ' 00:00:00'; $t2 = $t2 . ' 23:59:59'; 从第 1 天开始到第 2 天结束。注意 - 连接后需要一个空格

标签: php mysql sql-server datetime


【解决方案1】:

使用mysql函数添加日期

mysql> SELECT '2008-01-02';
+------------+
| 2008-01-02 |
+------------+
| 2008-01-02 |
+------------+
1 row in set (0.00 sec)

mysql> SELECT ADDDATE('2008-01-02', INTERVAL 0 HOUR);
+----------------------------------------+
| ADDDATE('2008-01-02', INTERVAL 0 HOUR) |
+----------------------------------------+
| 2008-01-02 00:00:00                    |
+----------------------------------------+
1 row in set (0.00 sec)


SELECT DISTINCT customertable FROM customer WHERE time_paid BETWEEN ADDDATE('$t1',INTERVAL 0 HOUR) AND ADDDATE('$t2',INTERVAL '23:59' HOUR_MINUTE)";

【讨论】:

    猜你喜欢
    • 2015-04-13
    • 2015-04-24
    • 1970-01-01
    • 2012-01-13
    • 2017-08-22
    • 2011-09-08
    • 2020-11-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多