如何从上周一到周日选择数据。喜欢这个
`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 );`
但它需要从过去的星期日到星期六
答案 0 :(得分:1)
如果您想检查Last week Monday
到This 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
;