如何在 Amazon Redshift 中将 DATEFIRST 设置为等于星期日
How to SET DATEFIRST equal to Sunday in Amazon Redshift
2016-01-01 是 2016 年的第 1 周,也是 2015 年的第 53 周。
当我运行SELECT DATE_PART(w, '2016-01-01')
它returns53
,但是当我运行SELECT DATE_PART(w, '2016-01-04')
它returns1
.
发生这种情况很可能是因为 Redshift 将星期一设置为一周的第一天,而不是星期日,这是应该的。
不确定这是否能解决问题,但我需要将 2016-01-01 作为第 1 周,将 2016-01-03 到 2016-01-09 作为第 2 周,依此类推。 .
使用此 case 语句创建自定义函数或在您的 SQL 语句中使用它:
case when DATE_PART('W', dt)>=51 and EXTRACT(DOY FROM dt) < 8 then 1 else DATE_PART('W', dt)+1 end week_no
它将从 1 月 1 日开始计算周数。
2016-01-01 是 2016 年的第 1 周,也是 2015 年的第 53 周。
当我运行SELECT DATE_PART(w, '2016-01-01')
它returns53
,但是当我运行SELECT DATE_PART(w, '2016-01-04')
它returns1
.
发生这种情况很可能是因为 Redshift 将星期一设置为一周的第一天,而不是星期日,这是应该的。
不确定这是否能解决问题,但我需要将 2016-01-01 作为第 1 周,将 2016-01-03 到 2016-01-09 作为第 2 周,依此类推。 .
使用此 case 语句创建自定义函数或在您的 SQL 语句中使用它:
case when DATE_PART('W', dt)>=51 and EXTRACT(DOY FROM dt) < 8 then 1 else DATE_PART('W', dt)+1 end week_no
它将从 1 月 1 日开始计算周数。