红移的 DATEPART 和 DATEFIRST 替代方案

DATEPART and DATEFIRST alternative for redshift

我正在尝试 运行

SELECT DATEPART(week, date(date)), MIN(date)

在 Redshift 中,开始日是星期六。我尝试对 SET DATEFIRST 使用不同的语法,但它似乎不受支持(或者我只是找不到 redshift 的正确语法)。有没有可用的替代品?

文档页面仅显示提取特定道指(星期几)的信息:https://docs.aws.amazon.com/redshift/latest/dg/r_DATE_PART_function.html

date_trunc() 函数会将时间戳截断为任意数量的级别,包括“周”。如果内存服务 date_trunc 一周,结果将设置为给定时间戳之前的星期一午夜。

现在您希望它截断到星期六,提前 2 天,这可以通过在 date_trunc 之前添加 2 天然后在之后减去 2 天来实现。像这样(未经测试,请原谅任何拼写错误):

date_trunc(‘week’, <your-timestamp> + interval ‘2 days’) - interval ‘2 days’