簡體   English   中英

使用 PostgreSQL 中的 DATE_TRUNC 計算一周的結束日期

[英]Calculate the end day of a week with DATE_TRUNC in PostgreSQL

有沒有辦法將顯示日期更改為每周結束而不是一周的開始。

這是我的代碼:

SELECT date_trunc('week', day + '1 day'::interval)::date - '1 day'::interval  AS anchor, AVG(value) AS average
FROM daily_metrics
WHERE metric = 'daily-active-users'
GROUP BY anchor
ORDER BY anchor

結果如下: 在此處輸入圖像描述

我想要實現的是使其成為 2018-03-03(自定義周的結束)而不是 2018-02-25(自定義周的開始),2018-03-10 而不是 2018-03 -04...

您來回移動一天的技巧可以很好地開始您的自定義周。 您可以通過添加5而不是減去1來獲得結束或自定義周(星期六):

SELECT date_trunc('week', day + interval '1 day')::date + 5 AS anchor ...

integer添加到date中,表示日期。

有關的:

只需嘗試

SELECT date_trunc('week', day::DATE + 1)::date + 5 AS anchor, AVG(value) AS average
FROM daily_metrics
WHERE metric = 'daily-active-users'
GROUP BY anchor
ORDER BY anchor

當日期是一周的開始日期時,加上 6 (1 + 5) 天會將日期移至一周的最后一天。 添加一個是將星期日移至下一周,而將 5 移動到從開始日期開始的一周結束。

請注意,PostgreSQL 允許將整數(= 天)添加到日期。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM