PostgreSQL 時間/日期函數(shù)和操作符

2023-02-28 14:20 更新

日期/時間操做符

證明演示了基本算術操作符的行為(+,*,等):

操作符 例子 結果
+ 日期'2001-09-28'+整數(shù)'7' 日期“ 2001-10-05”
+ 日期'2001-09-28'+間隔'1小時' 一場'2001-09-28 01:00:00'
+ 日期“ 2001-09-28” +時間“ 03:00” 一場'2001-09-28 03:00:00'
+ 間隔“ 1天” +間隔“ 1小時” 間隔“ 1天01:00:00”
+ 最佳“ 2001-09-28 01:00” +間隔“ 23小時” 一流'2001-09-29 00:00:00'
+ 時間“ 01:00” +間隔“ 3小時” 時間'04:00:00'
-- -間隔“ 23小時” 間隔'-23:00:00'
-- 日期'2001-10-01'-日期'2001-09-28' 整體“ 3”(天)
-- 日期'2001-10-01'-整體'7' 日期“ 2001-09-24”
-- 日期'2001-09-28'-間隔'1小時' 一場'2001-09-27 23:00:00'
-- 時間'05:00'-時間'03:00' 間隔'02:00:00'
-- 時間'05:00'-間隔'2小時' 時間'03:00:00'
-- timestamp'2001-09-28 23:00'-間隔'23 hours' 一流'2001-09-28 00:00:00'
-- 間隔“ 1天”-間隔“ 1小時” 間隔“ 1天-01:00:00”
-- 一場'2001-09-29 03:00'-一場'2001-09-27 12:00' 間隔“ 1天15:00:00”
* 900 *間隔“ 1秒” 間隔'00:15:00'
* 21 *間隔“ 1天” 間隔“ 21天”
* 雙精度'3.5'*間隔'1小時' 間隔'03:30:00'
/ 間隔“ 1小時” /雙精度“ 1.5” 間隔'00:40:00'

日期/時間函數(shù)

功能 返回類型 描述 例子 結果
age(timestamp, timestamp) 間隔 最初參數(shù)后的“符號化”結果,使用年和月,不只是使用天 年齡(至少“ 2001-04-10”,只能“ 1957-06-13”) 43年9個月27天
age(timestamp) 間隔 current_date最初參數(shù)后的結果(在午夜) 年齡(每年“ 1957-06-13”) 43年8個月3天
clock_timestamp() 帶時區(qū)的預算 實時時鐘的當前最佳(在語句執(zhí)行時變化)    
current_date 日期 當前的日期;    
current_time 帶時區(qū)的時間 當日時間;    
current_timestamp 帶時區(qū)的預算 當前事務開始時的合理;    
date_part(text, timestamp) 雙精度 獲取子域(等效于 extract); date_part(“小時”,預期“ 2001-02-16 20:38:40') 20
date_part(text, interval) 雙精度 獲取子域(等效于 extract); date_part(“月”,間隔“ 2年3個月”) 3
date_trunc(text, timestamp) 最好記 截斷成指定的精度; date_trunc(“小時”,分為“ 2001-02-16 20:38:40') 2001-02-16 20:00:00
date_trunc(text, interval) 間隔 截取指定的精度, date_trunc('小時',間隔'2天3小時40分鐘') 2天03:00:00
extract(初步記中的起點) 雙精度 獲取子域 摘錄(從預設'2001-02-16 20:38:40'開始的小時數(shù)) 20
extract(間隔的最高) 雙精度 獲取子域 摘錄(間隔“ 2年3個月”中的月份) 3
isfinite(date) 布爾值 測試是否為有窮日期(不是+/-無窮) 無限(日期'2001-02-16') 真正
isfinite(timestamp) 布爾值 測試是否為有窮困(不是+/-無窮) 無限(至少'2001-02-16 21:28:30') 真正
isfinite(interval) 布爾值 測試是否為有窮時間間隔 無限(間隔“ 4小時”) 真正
justify_days(interval) 間隔 按照每月30天調整時間間隔 justify_days(間隔“ 35天”) 1星期一5天
justify_hours(interval) 間隔 按照每天24小時調整時間間隔 justify_hours(間隔“ 27小時”) 1天03:00:00
justify_interval(interval) 間隔 使用 justify_days justify_hours調整時間間隔的同時進行正負號調整 justify_interval(間隔'1周一-1小時') 29天23:00:00
localtime 時間 當日時間;    
localtimestamp 最好記 當前事務開始時的合理;    
make_date(year int, month int, day int)
日期
為年,月和日劃分創(chuàng)建日期 make_date(2013,7,15) 2013-07-15
make_interval(years int DEFAULT 0, months int DEFAULT 0, weeks int DEFAULT 0, days int DEFAULT 0, hours int DEFAULT 0, mins int DEFAULT 0, secs double precision DEFAULT 0.0)
間隔

從年,月,周,天,小時,分鐘和秒分段中創(chuàng)建間隔

make_interval(天數(shù)== 10)

10天
make_time(hour int,
 min int, sec double precision)
時間 從小時,分鐘和秒分段中創(chuàng)建時間 make_time(8,15,23.5) 08:15:23.5
make_timestamp(year int, month int, day int, hour int, min int, sec double precision)
最好記

從年,月,日,小時,分鐘和秒分段中創(chuàng)建初始

make_timestamp(2013、7、15、8、15、23.5)
2013-07-15 08:15:23.5
make_timestamptz(year int, month int, day int, hour int, min int, sec double precision, [ timezone text ])
帶時區(qū)的預算

從指定年期,使用當前的時區(qū)。

make_timestamptz(2013、7、15、8、15、23.5)

2013-07-15 08:15:23.5 + 01
now() 帶時區(qū)的預算 當前事務開始時的合理;    
statement_timestamp() 帶時區(qū)的預算 實時時鐘的當前最佳;    
timeofday() 文字 clock_timestamp相同,但結果是一個文本字符串;    
transaction_timestamp() 帶時區(qū)的預算 當前事務開始時的合理;    


以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號