一周的第一天(从星期日开始)

时间:2018-02-14 22:32:54

标签: sql amazon-redshift

我发现一个月的最后一天有一个函数last_day,而从星期日开始的一周的数字日是date_part(dow, date),但是我想要约会,并获得第一天那个星期。

含义:如果date ='2018-02-14',则结果应为'2018-02-11'。

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

您只想从当前日期中减去dow值。

select dateadd(d, -datepart(dow, my_date), my_date)  
from (select date('2018-02-14') as my_date)

> 2018-02-11 00:00:00.0

例如,如果dow2018-02-14为3(星期三),则可以减去3天以返回“第0天”。

还有date_trunc函数会在给定的datepart之后截断所有内容。这有点笨重,只会让你回到之前的星期一,而不是星期天

select date_trunc('week', my_date)
from (select date('2018-02-14') as my_date)

答案 1 :(得分:0)

不确定是否有更有效的解决方案,但:

date_trunc('week',my_date + '1 day'::interval)::date - '1 day'::interval as week_start