从日期中减去天,然后在Redshift中将结果四舍五入到星期几

时间:2019-01-23 19:16:05

标签: sql amazon-redshift

抱歉,这听起来有点令人困惑...

我正在使用一个表,该表每周从星期日到星期六聚合数据。日期列存储星期几的结束日期;例如,上周应该是2019-01-19的一周结束日期。

我正在尝试从上周的结束日期(2019年1月19日)减去360天获得总计记录。但是,如果我减去360天,并且日期不是在星期六,则记录将被忽略。

如何从2019-01-19开始减去360天,并确保计算的日期也舍入到该周日期的末尾?

2019-01-19-360 = 2018-01-24,这是一个星期三。我希望将其舍入到该周的星期六,即2018年1月27日

2 个答案:

答案 0 :(得分:0)

类似的事情应该起作用 我尚未测试,但您了解了这个想法,可以根据需要进行修改

select (date_trunc('week','2019-01-19'::date) - (interval '1 week' * floor(360/7))) + interval '6 days';

如果它已关闭并且您看不到要进行更改以使其起作用,请发表评论。

答案 1 :(得分:0)

在Google BigQuery标准SQL中,您可以执行以下操作:

SELECT DATE_TRUNC(DATE_ADD(<YOUR_DATE>), INTERVAL -360 DAY), WEEK(SATURDAY))