【问题标题】:MySQL query to get data for the last weekMySQL查询以获取上周的数据
【发布时间】:2013-01-26 11:29:33
【问题描述】:

我想运行一个 MYSQL 查询来获取前一周的数据。日期列的数据类型是 DATETIME。有人可以建议吗?

【问题讨论】:

标签: mysql


【解决方案1】:
SELECT * 
  FROM calendar 
 WHERE dt BETWEEN CURDATE()-INTERVAL 1 WEEK AND CURDATE();

【讨论】:

    【解决方案2】:

    这是另一个版本:

    SELECT * FROM table WHERE 
    YEARWEEK(`date`, 1) = YEARWEEK( CURDATE() - INTERVAL 1 WEEK, 1)
    

    【讨论】:

      【解决方案3】:
      SELECT id FROM tbl
      WHERE date >= curdate() - INTERVAL DAYOFWEEK(curdate())+6 DAY
      AND date < curdate() - INTERVAL DAYOFWEEK(curdate())-1 DAY
      

      【讨论】:

        【解决方案4】:

        这是我发现在前一个星期一到当前星期一之间获取数据最可靠的解决方案。 (这是大多数人说过去一周时的意思,但不是全部,这反映在 mysql 中。

        SELECT 
           * 
        FROM 
           table 
        WHERE 
           date BETWEEN 
              (CURDATE() - INTERVAL 1 DAY) + INTERVAL -1 WEEK - INTERVAL WEEKDAY((CURDATE() - INTERVAL 1 DAY)) DAY 
              and 
              (CURDATE() - INTERVAL 1 DAY) + INTERVAL 0 WEEK - INTERVAL WEEKDAY((CURDATE() - INTERVAL 1 DAY)) DAY
        

        再换一周也很容易

        【讨论】:

          【解决方案5】:

          为当前日期时间创建变量 - 1 周并进行以下查询:

          SELECT * FROM table WHERE date > $datatime
          

          【讨论】:

            猜你喜欢
            • 2013-04-02
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-06-10
            • 1970-01-01
            • 2015-10-21
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多