如何在Amazon Redshift中将最后一个YEARWEEK设置为53

时间:2016-03-07 07:35:19

标签: amazon-redshift

2015-12-27是2015年第53周,但也是2016年第1周的一部分。

当我运行DATE_PART('W','2015-12-27'+ interval'1 day')时,它返回1,因为2016-01-01是在同一周的星期五。

我已添加+间隔'1天',因为我希望这周从周日到周一运行。

我不确定如何将每年的最后一周设置为53而不是1,就像一年中最后一周与新年第一周共享天数一样。例如,我需要2015-12-27至2015-12-31为第53周,2016-01-01至2016-01-02为第1周。

1 个答案:

答案 0 :(得分:0)

查看simmilar回答How to set 1/1 to Week 1 and 12/31 to Week 53

使用此case语句创建自定义函数或在SQL语句中使用它:

CASE WHEN DATE_PART('DOY', ReturnDate) >= 358 AND DATE_PART('W', ReturnDate + interval '1 day') = 1 
    THEN 53 
    ELSE DATE_PART('W', ReturnDate + interval '1 day') 
END AS Week_Num