如何在特定月份中查找表中的所有数据

时间:2016-06-19 10:36:30

标签: mysql

我正在尝试从特定月份的表中检索所有数据,我在数据库表中的日期格式为2016-06-19我需要查找所选日期,就像我选择{{1 }} 它将从表中检索2016-05-222016-05-07个区间值。

对于本月2016-06-06个月的所有值,我使用PHP 05。我尝试过使用此查询

mysqli

这适用于正常运行的月份,但问题是,如果我选择上个月它不起作用。

2 个答案:

答案 0 :(得分:1)

关于需要什么,问题不是很清楚。基于我能理解的2个要求:

  1. 获取给定日期周围的所有内容(即距离给定日期+ -15天):

    SELECT * 
      FROM t_tenancy_details 
     WHERE agreement_date >= DATE_SUB(@d, INTERVAL 15 DAY)
       AND agreement_date <= DATE_ADD(@d, INTERVAL 15 DAY);
    
  2. 获取月份与给定日期中的月份相同的所有记录:

    SELECT *
      FROM t_tenancy_details
     WHERE MONTH(agreement_date) = MONTH(@d)
       AND YEAR(agreement_date) = YEAR(@d);
    
  3. 其中@d是输入日期,在您的情况下 - CURRENT_DATE

答案 1 :(得分:0)

应该是这个

SELECT * FROM t_tenancy_details
WHERE (YEAR(t_tenancy_details) => YEAR(CURRENT_DATE - INTERVAL 1 MONTH)
AND MONTH(agreement_date) => MONTH(CURRENT_DATE - INTERVAL 1 MONTH))
AND (YEAR(t_tenancy_details) <= YEAR(CURRENT_DATE)
AND MONTH(agreement_date) <=  MONTH(CURRENT_DATE))