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周。
答案 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