日期之间的Mysql [重复]

问题描述 投票:-1回答:5

这个问题在这里已有答案:

我有桌子材料:

  • id:int
  • 标题:文字
  • date_operation:date

我有这些数据:

    1, title1, 2016-06-02
    2, title2, 2016-06-02
    3, title3, 2016-06-03
    4, title4, 2016-06-03
    5, title6, 2016-06-03
    6, title7, 2016-06-05
    7, title8, 2016-06-05
    8, title9, 2016-06-06
    9, title10, 2016-06-06
    10, title11, 2016-06-06
    11, title11, 2016-06-07
    12, title12, 2016-06-08

我想显示2016-06-02和2016-06-06之间日期操作的所有资料:

我尝试这个:

SELECT * FROM `material` WHERE date_operation = '2016-06-02' AND '2016-06-06'

但是告诉我这个结果:

1, title1, 2016-06-02
2, title2, 2016-06-02
3, title3, 2016-06-03
4, title4, 2016-06-03
5, title6, 2016-06-03
6, title7, 2016-06-05
7, title8, 2016-06-05

我想看到这个结果:

1, title1, 2016-06-02
2, title2, 2016-06-02
3, title3, 2016-06-03
4, title4, 2016-06-03
5, title6, 2016-06-03
6, title7, 2016-06-05
7, title8, 2016-06-05
8, title9, 2016-06-06
9, title10, 2016-06-06
10, title11, 2016-06-06
php mysql
5个回答
5
投票

试试这个

SELECT *
FROM `material`
WHERE (date_operation BETWEEN '2016-06-02' AND '2016-06-06')

5
投票

使用三元运算符快速执行MYSQL查询的最佳方法。试试这个 :-

`SELECT * FROM material WHERE date_operation >= '2016-06-02' AND date_operation <= '2016-06-06'`;

1
投票

您可能在“日期”值上有时间组件。 BETWEEN对约会很危险。我建议:

SELECT *
FROM `material`
WHERE date_operation >= '2016-06-02' AND date_operation < '2016-06-07';

无论值是否具有时间组件,这都将起作用。

您也可以使用date()函数(甚至使用between),但这可能会妨碍索引的使用。


0
投票

试试这个

SELECT * FROM `material` WHERE date_operation >= '2016-06-02' AND date_operation <='2016-06-06'

0
投票

试试这个 :

SELECT * FROM `material` WHERE date_operation BETWEEN '2016-06-02 00:00:00' AND '2016-06-06 23:59:59'
© www.soinside.com 2019 - 2024. All rights reserved.