簡體   English   中英

在 Postgres 中倒計時日期和月份

[英]Countdown the days and months within Postgres

我知道date_part('days', age(release_date)) ,它將顯示release_date col ( timestamp )的年齡。 例如,如果發布日期是1994-05-30date_part計算將產生5 days

但是,我怎樣才能從倒計時的角度找出答案,即另一個版本。 距離本次發行周年紀念日還有2 days 例如,這只是365 - date_part('days', age(release_date))的問題嗎? 或者,還有更好的方法?

將發布日期轉換為當前年份並從中減去當前日期。 假設release_date是實際date

SELECT *
     , (release_date + (date_trunc('year', LOCALTIMESTAMP)
                      - date_trunc('year', release_date)))::date
     - CURRENT_DATE AS days_till_aniversary
FROM   release;

db<> 在這里擺弄

一個地方有LOCALTIMESTAMP而另一個地方有CURRENT_DATE是有原因的。 這樣,計算就可以在不涉及時區的情況下完成。 (除了取決於您的會話開始時的時區設置。)減去日期會產生一個整數,表示以天為單位的差異。

今年過去的周年紀念日產生負數。

暫無
暫無

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

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