【问题标题】:How to get only last 6 months details in mysql [duplicate]如何在mysql中仅获取最近6个月的详细信息[重复]
【发布时间】:2013-06-19 09:28:50
【问题描述】:

请有人帮忙获取最近 6 个月的详细信息。尝试使用 stackoverflow 和 mysql 站点中已经提到的答案。但没有得到所需的输出。

我尝试了不同的组合。但不能。

mysql> select date from bo_rr;
+------------+
| date       |
+------------+
| 2013-06-14 |
| 2013-06-14 |
| 2013-06-14 |
| 2013-09-14 |
| 2013-09-14 |
| 2013-06-19 |
+------------+
6 rows in set (0.00 sec)

mysql> select date from bo_rr where date > date_sub(now(),interval 6 month);
+------------+
| date       |
+------------+
| 2013-06-14 |
| 2013-06-14 |
| 2013-06-14 |
| 2013-09-14 |
| 2013-09-14 |
| 2013-06-19 |
+------------+
6 rows in set (0.00 sec)

mysql> select date from bo_rr where date >= date_sub(now(),interval 6 month);
+------------+
| date       |
+------------+
| 2013-06-14 |
| 2013-06-14 |
| 2013-06-14 |
| 2013-09-14 |
| 2013-09-14 |
| 2013-06-19 |
+------------+
6 rows in set (0.00 sec)

mysql> select date from bo_rr where date < date_sub(now(),interval 6 month);
Empty set (0.00 sec)

mysql> select date from bo_rr where date <= date_sub(now(),interval 6 month);
Empty set (0.00 sec)

mysql> select date from bo_rr where date > date_sub(now(),interval -6 month);
Empty set (0.00 sec)

mysql> select date from bo_rr where date >= date_sub(now(),interval -6 month);
Empty set (0.00 sec)

mysql> select date from bo_rr where date < date_sub(now(),interval -6 month);
+------------+
| date       |
+------------+
| 2013-06-14 |
| 2013-06-14 |
| 2013-06-14 |
| 2013-09-14 |
| 2013-09-14 |
| 2013-06-19 |
+------------+
6 rows in set (0.00 sec)

mysql> select date from bo_rr where date <= date_sub(now(),interval -6 month);
+------------+
| date       |
+------------+
| 2013-06-14 |
| 2013-06-14 |
| 2013-06-14 |
| 2013-09-14 |
| 2013-09-14 |
| 2013-06-19 |
+------------+
6 rows in set (0.00 sec)

【问题讨论】:

    标签: mysql date datediff


    【解决方案1】:

    由于您有未来的记录,您需要设置开始和结束边界条件。您可以通过BETWEEN 方便地做到这一点。

    试试

    SELECT date 
      FROM bo_rr 
     WHERE date BETWEEN CURDATE() - INTERVAL 6 MONTH AND CURDATE()
    

    SELECT date 
      FROM bo_rr 
     WHERE date <= CURDATE() 
       AND date >= CURDATE() - INTERVAL 6 MONTH
    

    输出:

    +------------+ |日期 | +------------+ | 2013-06-14 | | 2013-06-14 | | 2013-06-14 | | 2013-06-19 | +------------+

    【讨论】:

    • 非常感谢@peterm :-)
    • 不客气 :) 如果这是您要找的东西,请考虑到 accept 回答。
    猜你喜欢
    • 2020-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多