[英]PostgreSQL DATE_TRUNC by 2 Weeks
我在PostgreSQL
中有這樣的數據:
日期 | 客戶 ID |
---|---|
05-04-2021 | 001 |
2021 年 10 月 4 日 | 002 |
2021 年 12 月 4 日 | 003 |
2021 年 4 月 19 日 | 001 |
20-04-2021 | 002 |
22-04-2021 | 003 |
我想讓它變成這樣:
日期 | 客戶 ID |
---|---|
05-04-2021 | 001 |
05-04-2021 | 002 |
05-04-2021 | 003 |
2021 年 4 月 19 日 | 001 |
2021 年 4 月 19 日 | 002 |
2021 年 4 月 19 日 | 003 |
通常,我使用date_trunc('week', Date)
但如果是 2 周,我不知道該使用什么
您可以升級到 PostgreSQL v14(當前為 Beta)並使用date_bin
function:
SELECT date_bin('2 weeks', date::timestamp, '2021-01-11')::date,
custid
FROM mytable;
2021-01-11 是一個隨機的星期一。
在現有版本的 Postgres 中,您可以使用算術:
select t.*,
(first_week + ((date - first_week::date) / 14)*14 * interval '1 day')::date as biweek
from (select t.*,
min(date_trunc('week', date)) over () as first_week
from t
) t;
這是一個 db<>fiddle。
子查詢不是嚴格需要的,但它使代碼更易於閱讀。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.