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

2023-02-28 14:20 更新

日期/時(shí)間操做符

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

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

日期/時(shí)間函數(shù)

功能 返回類型 描述 例子 結(jié)果
age(timestamp, timestamp) 間隔 最初參數(shù)后的“符號(hào)化”結(jié)果,使用年和月,不只是使用天 年齡(至少“ 2001-04-10”,只能“ 1957-06-13”) 43年9個(gè)月27天
age(timestamp) 間隔 current_date最初參數(shù)后的結(jié)果(在午夜) 年齡(每年“ 1957-06-13”) 43年8個(gè)月3天
clock_timestamp() 帶時(shí)區(qū)的預(yù)算 實(shí)時(shí)時(shí)鐘的當(dāng)前最佳(在語(yǔ)句執(zhí)行時(shí)變化)    
current_date 日期 當(dāng)前的日期;    
current_time 帶時(shí)區(qū)的時(shí)間 當(dāng)日時(shí)間;    
current_timestamp 帶時(shí)區(qū)的預(yù)算 當(dāng)前事務(wù)開(kāi)始時(shí)的合理;    
date_part(text, timestamp) 雙精度 獲取子域(等效于 extract); date_part(“小時(shí)”,預(yù)期“ 2001-02-16 20:38:40') 20
date_part(text, interval) 雙精度 獲取子域(等效于 extract); date_part(“月”,間隔“ 2年3個(gè)月”) 3
date_trunc(text, timestamp) 最好記 截?cái)喑芍付ǖ木龋?/font> date_trunc(“小時(shí)”,分為“ 2001-02-16 20:38:40') 2001-02-16 20:00:00
date_trunc(text, interval) 間隔 截取指定的精度, date_trunc('小時(shí)',間隔'2天3小時(shí)40分鐘') 2天03:00:00
extract(初步記中的起點(diǎn)) 雙精度 獲取子域 摘錄(從預(yù)設(shè)'2001-02-16 20:38:40'開(kāi)始的小時(shí)數(shù)) 20
extract(間隔的最高) 雙精度 獲取子域 摘錄(間隔“ 2年3個(gè)月”中的月份) 3
isfinite(date) 布爾值 測(cè)試是否為有窮日期(不是+/-無(wú)窮) 無(wú)限(日期'2001-02-16') 真正
isfinite(timestamp) 布爾值 測(cè)試是否為有窮困(不是+/-無(wú)窮) 無(wú)限(至少'2001-02-16 21:28:30') 真正
isfinite(interval) 布爾值 測(cè)試是否為有窮時(shí)間間隔 無(wú)限(間隔“ 4小時(shí)”) 真正
justify_days(interval) 間隔 按照每月30天調(diào)整時(shí)間間隔 justify_days(間隔“ 35天”) 1星期一5天
justify_hours(interval) 間隔 按照每天24小時(shí)調(diào)整時(shí)間間隔 justify_hours(間隔“ 27小時(shí)”) 1天03:00:00
justify_interval(interval) 間隔 使用 justify_days justify_hours調(diào)整時(shí)間間隔的同時(shí)進(jìn)行正負(fù)號(hào)調(diào)整 justify_interval(間隔'1周一-1小時(shí)') 29天23:00:00
localtime 時(shí)間 當(dāng)日時(shí)間;    
localtimestamp 最好記 當(dāng)前事務(wù)開(kāi)始時(shí)的合理;    
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)
間隔

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

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

10天
make_time(hour int,
 min int, sec double precision)
時(shí)間 從小時(shí),分鐘和秒分段中創(chuàng)建時(shí)間 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)
最好記

從年,月,日,小時(shí),分鐘和秒分段中創(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 ])
帶時(shí)區(qū)的預(yù)算

從指定年期,使用當(dāng)前的時(shí)區(qū)。

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

2013-07-15 08:15:23.5 + 01
now() 帶時(shí)區(qū)的預(yù)算 當(dāng)前事務(wù)開(kāi)始時(shí)的合理;    
statement_timestamp() 帶時(shí)區(qū)的預(yù)算 實(shí)時(shí)時(shí)鐘的當(dāng)前最佳;    
timeofday() 文字 clock_timestamp相同,但結(jié)果是一個(gè)文本字符串;    
transaction_timestamp() 帶時(shí)區(qū)的預(yù)算 當(dāng)前事務(wù)開(kāi)始時(shí)的合理;    


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)