PostgreSQL 的日期函式用法舉例

2021-09-07 22:36:39 字數 3696 閱讀 1010

最近偶有開發同事諮詢 postgresql 日期函式,對日期處理不太熟悉,今天

詳細看了下手冊的日期函式,整理如下,供參考。

一 取當前日期的函式

--取當前時間

skytf=> select now();

now             

-------------------------------

2011-06-03 14:45:43.633466+08

(1 row)

skytf=> select current_timestamp;

now             

-------------------------------

2011-06-03 14:46:58.768399+08

--取當前時間的日期

skytf=> select current_date;

date   

------------

2011-06-03

(1 row)

--取當前具體時間 (除去日期)

skytf=> select current_time;

timetz      

--------------------

14:46:29.404942+08

(1 row)

二 日期的加減

skytf=> select now();

now             

-------------------------------

2011-06-03 14:54:04.771193+08

(1 row)

--表示三天後

skytf=> select now() + interval '3 day';

?column?           

-------------------------------

2011-06-06 14:54:06.119683+08

(1 row)

--表示三天前

skytf=> select now() - interval '3 day';

?column?           

-------------------------------

2011-05-31 14:54:10.060558+08

(1 row)

--表示1小時後

skytf=> select now() + interval '1 hour';

?column?           

-------------------------------

2011-06-03 15:55:24.600172+08

(1 row)

--表示1小時前

skytf=> select now() - interval '1 hour';

?column?           

-------------------------------

2011-06-03 13:55:25.799537+08

(1 row)

(1 row)

--表示10分鐘後

skytf=> select now() + interval '10 minutes';

?column?           

-------------------------------

2011-06-03 15:06:23.363667+08

(1 row)

--表示10分鐘前

skytf=> select now() - interval '10 minutes';

?column?           

-------------------------------

2011-06-03 14:46:13.899526+08

三 取時間欄位的部分值

在開發過程中,經常要取日期的年,月,日,小時等值,postgresql 提供乙個非常便利的extract函式。

--extract函式解釋

extract(field from source): field 表示取的時間物件, source 表示取的日期**,型別為 timestamp。

下面是一些例子。

--取年份

skytf=> select extract (year from now());

date_part

-----------

2011

(1 row)  

--取月份  

skytf=> select extract (month from now());

date_part

-----------

6(1 row)  

--取day

skytf=> select extract(day from now());

date_part

-----------

3(1 row)

skytf=> select extract(day from timestamp '2011-06-03');

date_part

-----------

3(1 row)

skytf=> select timestamp '2011-06-03';

timestamp     

---------------------

2011-06-03 00:00:00

(1 row)

--取小時

skytf=> select extract (hour from now());

date_part

-----------

14(1 row)

--取分鐘

skytf=> select extract (minute from now());

date_part

-----------

59(1 row)

--取秒

skytf=> select extract (second from now());

date_part

-----------

46.039333

(1 row)

--取所在哪個星期

skytf=> select extract (week from now());

date_part

-----------

22(1 row)

四 總結

上面只是 postgresql 日期函式的基本用法,希望這些對大家應用 postgresql

起到一定作用。

PostgreSQL的日期 時間函式

公司裡有一台阿里雲rds資料庫用了ppas postgres plustm advanced server 在處理日期 時間時遇到一些問題,花了點時間整理如下。有時候,我們不需要這麼完整細緻的時間,自然就有 老實說,這是見過最奇怪的一套時間計算的方式了。select now interval 2 y...

PostgreSQL日期和時間函式

1.獲取當前日期的函式和獲取當前時間的函式 current date函式的作用是將當前日期按照 yyyy mm dd 格式的值返回,具體格式根據函式用在字串或是數字預警中而定。current time函式的作用是將當前時間以 hh mm ss 的格式返回,具體格式根據函式用在字串或是數字語境中而定。...

pg日期轉周 PostgreSQL 日期 時間型別

時區和時區習慣不僅僅受地球幾何形狀的影響,還受到政治決定的影響。到了 19 世紀,全球的時區變得稍微標準化了些,但是還是易於遭受隨意的修改,部分是因為夏時制規則。postgresql 目前支援 1902 年到 2038 年之間的夏時制資訊 對應於傳統 unix 系統時間的完整跨度 如果時間超過這個範...