PostgreSQL時(shí)間處理的一些常用方式總結(jié)
1.獲取當(dāng)前時(shí)間
now()函數(shù):
select now();

current_timestamp,同now():
select current_timestamp;

select current_time;

select current_date;

可以去掉now()、掉后面的+8等:
select now()::timestamp(0)without time zone; select current_timestamp::timestamp(0)without time zone;

2.date_part函數(shù)
語(yǔ)法:DATE_PART(field, source), filed可以理解為要截取的類型。
下面是filed支持的類型:
CENTURY,世紀(jì),獲取日期所在的世紀(jì):
select date_part('CENTURY', TIMESTAMP '2022-12-16 12:21:13');
select date_part('CENTURY', now());

MILLENNIUM,千年
select date_part('MILLENNIUM', timestamp '2022-12-16 13:21:15');
YEAR,年份域
select date_part('YEAR', timestamp '2022-12-16 13:21:15');

MONTH,對(duì)于timestamp數(shù)值,它是一年里的月份數(shù)(1-12);對(duì)于interval數(shù)值,它是月的數(shù)目,然后對(duì)12取模(0-11)
select date_part('MONTH', timestamp '2022-12-16 13:21:15');
select date_part('month', interval '2 years 5 months')
DAY,日期里的天,值是1-31:
select date_part('day', TIMESTAMP '2022-12-16 12:21:13');
select date_part('day', now());
HOUR,小時(shí)(0-23)
select date_part('HOUR', TIMESTAMP '2022-12-16 12:21:13');
MINUTE,分鐘域(0-59)
select date_part('MINUTE', TIME '2022-12-16 13:21:15');
SECOND,秒域,包括小數(shù)部分(0-59[1])
select date_part('SECOND', timestamp '2022-12-16 13:21:15');
MICROSECONDS,秒域(包括小數(shù))乘以 1,000,000

select date_part('MICROSECONDS', TIME '2022-12-16 13:21:15');
MILLISECONDS,秒域(包括小數(shù))乘以 1,000
select date_part('MILLISECONDS', timestamp '2022-12-16 13:21:15');
DECADE,年份域除以10:
select date_part('DECADE', TIMESTAMP '2022-12-16 12:21:13');
DOW,星期號(hào)(0-6;星期天是0) (僅用于timestamp)
select date_part('DOW', TIMESTAMP '2022-12-16 12:21:13');
select date_part('DOW', now());

DOY,一年中的第幾天(1 -365/366) (僅用于 timestamp)
select date_part('DOY', TIMESTAMP '2022-12-16 12:21:13');

QUARTER,該天所在的該年的季度(1-4)(僅用于 timestamp)
select date_part('QUARTER', timestamp '2022-12-16 13:21:15');
WEEK,該天在所在的年份里是第幾周。
select date_part('WEEK', timestamp '2022-12-16 13:21:15');
3.extract()函數(shù)
使用語(yǔ)法:extract (field from source),field 支持的類型,和date_part()函數(shù)一樣
select extract ('year' from timestamp '2022-12-16 13:21:15')
4.日期格式化函數(shù)
to_char(timestamp, text),把時(shí)間戳轉(zhuǎn)換成字串
select to_char(now(), 'YYYY-MM-DD HH24:MI:SS')

to_date(text, text) 把字串轉(zhuǎn)換成日期
select to_date('05 Dec 2022', 'DD Mon YYYY')
to_timestamp(text, text) ,把字串轉(zhuǎn)換成時(shí)間戳
select to_timestamp('05 Dec 2022', 'DD Mon YYYY')
5.時(shí)間運(yùn)算
select date '2001-09-28' + integer '7'; select date '2001-09-28' + interval '1 hour'; select date '2001-09-28' + time '03:00'; select interval '1 day' + interval '1 hour'; select timestamp '2001-09-28 01:00' + interval '23 hours'; select time '01:00' + interval '3 hours'; select - interval '23 hours'; select date '2001-10-01' - date '2001-09-28'; select date '2001-10-01' - integer '7'; select date '2001-09-28' - interval '1 hour'; select time '05:00' - time '03:00'; select time '05:00' - interval '2 hours; select timestamp '2001-09-28 23:00' - interval '23 hours'; select interval '1 day' - interval '1 hour'; select timestamp '2001-09-29 03:00' - timestamp '2001-09-27 12:00'; select interval '1 hour' * double precision '3.5'; select interval '1 hour' / double precision '1.5';

6.計(jì)算時(shí)間差
select now() + interval '10 min/year/month/day/hour/sec/ (1 year 1 month 1 day 1 hour 1 min 1 sec)' select now() - interval '10 min/year/month/day/hour/sec/ (1 year 1 month 1 day 1 hour 1 min 1 sec)' select now()::timestamp(0)without time zone-interval '72 hour' select extract(day from now() - '2001-09-27 12:00') from user ;

總結(jié)
到此這篇關(guān)于pgsql時(shí)間處理的一些常用方式總結(jié)的文章就介紹到這了,更多相關(guān)pgsql時(shí)間處理內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
常用?PostgreSQL?數(shù)據(jù)恢復(fù)方案及使用示例
這篇文章主要介紹了常用?PostgreSQL?數(shù)據(jù)恢復(fù)方案概覽,數(shù)據(jù)丟失通常是由?DDL?與?DML?兩種操作引起,由于在操作系統(tǒng)中表文件已經(jīng)不存在,所以只能采用恢復(fù)磁盤的方法進(jìn)行數(shù)據(jù)恢復(fù),需要的朋友可以參考下2022-01-01
PostgreSQL 實(shí)現(xiàn)給查詢列表增加序號(hào)操作
這篇文章主要介紹了PostgreSQL 實(shí)現(xiàn)給查詢列表增加序號(hào)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01
PostgreSQL拼接字符串的幾種方法簡(jiǎn)單示例
在PostgreSQL中有多種方式可以拼接字符串,這篇文章主要給大家介紹了關(guān)于PostgreSQL拼接字符串的幾種方法,文中通過(guò)代碼示例介紹的非常詳細(xì),需要的朋友可以參考下2024-01-01
PostgreSQL中如何將對(duì)象oid和對(duì)象名相互轉(zhuǎn)換
文章介紹了在PostgreSQL中如何使用內(nèi)部數(shù)據(jù)類型將對(duì)象OID(對(duì)象標(biāo)識(shí)符)轉(zhuǎn)換為對(duì)象名,從而簡(jiǎn)化系統(tǒng)視圖的關(guān)聯(lián)查詢,文章還提供了不同類型OID與對(duì)象名之間的轉(zhuǎn)換關(guān)系,并通過(guò)示例展示了如何將對(duì)象名轉(zhuǎn)換為OID2024-11-11
PostgreSQL去掉表中所有不可見(jiàn)字符的操作
這篇文章主要介紹了PostgreSQL去掉表中所有不可見(jiàn)字符的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-12-12
postgreSQL查詢結(jié)果添加一個(gè)額外的自增序列操作
這篇文章主要介紹了postgreSQL查詢結(jié)果添加一個(gè)額外的自增序列操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-02-02
自定義函數(shù)實(shí)現(xiàn)單詞排序并運(yùn)用于PostgreSQL(實(shí)現(xiàn)代碼)
這篇文章主要介紹了自定義函數(shù)實(shí)現(xiàn)單詞排序并運(yùn)用于PostgreSQL,本文給大家分享實(shí)現(xiàn)代碼,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-04
postgreSQL自動(dòng)生成隨機(jī)數(shù)值的實(shí)例
這篇文章主要介紹了postgreSQL自動(dòng)生成隨機(jī)數(shù)值的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01

