sql - DATEPART 和 DATEFIRST 替代红移

我正在尝试运行

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

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

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

回答1

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

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

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

相似文章