选择从上周一到周日的数据

时间:2017-01-27 06:33:41

标签: mysql

如何从上周一到周日选择数据。喜欢这个

`WHERE
   `order`.order_createdAt >= date_sub(date_sub(curdate(), interval day(curdate()) - 1 day), interval 1 month) 
and `order`.order_createdAt < date_sub(curdate(), interval day(curdate()) - 1 day)`

这显示了上个月的数据 UPD。找到这个

`WHERE WEEK (order_createdAt) = WEEK( current_date)-1 
AND YEAR( order_createdAt) = YEAR( current_date );`

但它需要从过去的星期日到星期六

4 个答案:

答案 0 :(得分:1)

如果您想检查Last week MondayThis Sunday,也就是说今天的日期是 '2017-01-27' Last week Monday 日期 2017-01-16 This Sunday 2017-01-22 ,然后您可以按照以下查询,

WHERE
   `order`.order_createdAt BETWEEN subdate(curdate(),dayofweek(curdate())+5)
and subdate(curdate(),dayofweek(curdate())-1)`

希望这会帮助你。

答案 1 :(得分:0)

下面的SQL代码可能对Presto个用户可能有用,这些用户可能会参考相同的问题来搜索相同的信息,以获取上周一下一个星期日之间的数据an ISO week):-

WHERE date_column_ref BETWEEN date_add('day', dow(localtimestamp) * -1 + 1, localtimestamp) and date_add('day', 7 - dow(localtimestamp), localtimestamp)

答案 2 :(得分:0)

select subdate(curdate(), WEEKDAY(curdate()) + 7); # Monday
select subdate(curdate(), WEEKDAY(curdate()) + 1); # Sunday

答案 3 :(得分:0)

我一直试图搜索从特定日期到星期一到星期日的相同问题。

我想出了以下内容,希望这对正在寻找与我相同的解决方案的人有所帮助。

我唯一的问题是,我认为这可以改进并且可以接受建议,因为它很长。

SELECT 
    DATE_ADD(DATE('2021-05-30 02:12:43'),
        INTERVAL - WEEKDAY(DATE('2021-05-30 02:12:43')) DAY) AS MONDAY,
    DATE_ADD(DATE_ADD(DATE('2021-05-30 02:12:43'),
            INTERVAL - WEEKDAY(DATE('2021-05-30 02:12:43')) DAY),
        INTERVAL 6 DAY) AS SUNDAY
;

enter image description here