亚马逊 - Redshift:给定日期的周数错误
Posted
技术标签:
【中文标题】亚马逊 - Redshift:给定日期的周数错误【英文标题】:Amazon - Redshift : Week number for a given date is coming wrong 【发布时间】:2018-01-08 09:30:52 【问题描述】:考虑到星期日是一周的第一天,以下 redshift 中的语句应返回 2 作为周数,而不是返回 1。
mysql 有一个名为Week() 的函数,我们可以在其中使用该模式来获得所需的结果。同样,redshift 中是否有任何函数可以用来获取正确的周数。
任何帮助将不胜感激。
SELECT EXTRACT(WEEK FROM TIMESTAMP '2018-01-07');
SELECT TO_CHAR(TIMESTAMP '2018-01-07','WW');
【问题讨论】:
它在 PostgreSQL 上返回相同的结果,因此它应该在 Redshift 上以相同的方式工作。那是因为这两个星期都是从星期一开始的。尝试查询“2017-01-01”,这是一个星期天,你会得到 52。 @Yankee,你是说红移上的一周从星期一开始吗?我以为它是从周日开始的,有没有办法改变这个 @JorgeMadrigal 是的,因为它在 Postgres 中是一样的。这是我发现在 Postgres 中改变的一些东西,应该也可以在 Redshift 中工作blog.0101010.com/making-date-trunc-use-a-sunday-week 【参考方案1】:date_part 可以直接用于您的用例。
查询:
select date_part(w, '2018-01-07');
更多详情请点击链接:https://docs.aws.amazon.com/redshift/latest/dg/r_DATE_PART_function.html
【讨论】:
【参考方案2】:似乎没有直接的解决方案,但这里有一个解决方法:
SELECT EXTRACT(WEEK FROM TIMESTAMP '2018-01-07'::date + '1 day'::interval);
Source
【讨论】:
以上是关于亚马逊 - Redshift:给定日期的周数错误的主要内容,如果未能解决你的问题,请参考以下文章