DATE_TRUNC 从周日开始 SQL presto (Athena)

问题描述 投票:0回答:2

尽管这个问题听起来很简单,但我一直无法找到直接的解决方案。我正在使用 AWS Athena,据我所知,这是一个 presto 引擎。

我有变量“created_at”,它是一个时间戳。 我怎样才能让

DATE_TRUNC('week', created_at)
在周日而不是周一开始?

我已经看到有关 %V 或 %X 的文档作为可能的解决方案,但不确定在函数中的何处引入它,也就是说,它是否是正确的解决方案。

本质上,我想按周计算销售额,从周日开始,到周六结束,我将按周分组

GROUP BY DATE_TRUNC('week', created_at) 
sql date timestamp amazon-athena presto
2个回答
0
投票

您可以在

date_format
函数中使用它们:
date_format(created_at, '%X%V')
(并使用结果进行分组),但不幸的是,目前 presto 不支持它们。

作为一种解决方法,您可以添加一天:

select week(created_at + interval '1' day)

0
投票

试试这个:

CAST(DATE_ADD('day', -DATE_DIFF('day', DATE_ADD('day', -1, DATE_TRUNC('WEEK',created_at)),created_at),created_at) AS VARCHAR) AS week_start_sunday

© www.soinside.com 2019 - 2024. All rights reserved.