最近偶有開發同事諮詢 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 系統時間的完整跨度 如果時間超過這個範...