如何使用SQL获取日期后的最近2周

时间:2018-11-08 05:06:19

标签: sql r postgresql

我想根据当前日期获得最近2周的时间。

假设今天是星期四,但我想要过去2周的数据,即星期一至星期日。

我能得到从星期一开始到星期日结束的最近两周的确切信息吗?

如何在sql中获取?

head(data)
"2018-07-01" 
"2018-07-01" 
"2018-07-01" 
"2018-07-01" 
"2018-07-01" 
"2018-07-01" ## date format in my data

3 个答案:

答案 0 :(得分:1)

您需要使用date_trunc函数将其截断到一周的开始,然后减去1周的时间间隔:

select  date_trunc('week', '2018-07-01'::timestamp) - interval '1 week';

答案 1 :(得分:1)

您可以在下面尝试

select * from yourtable where date>=date_trunc('week', current_date::timestamp) - interval '2 week'
and date<date_trunc('week', current_date::timestamp) 

答案 2 :(得分:1)

您可以尝试一下。

SELECT current_date + cast(abs(extract(dow from current_date) - 7) + 1 as int) - interval '2 week' "lastMonday",
       current_date + cast(abs(extract(dow from current_date) - 7)  as int)    - interval '1 week' "lastSunday"

sqlfiddle

注意

current_date可以更改您的日期时间。