PostgreSQL中date_trunc函數(shù)的語法及一些示例
date_trunc 函數(shù)用于在 PostgreSQL 中將日期或時間戳值截斷(向下取整)到指定的精度級別。當您想要忽略較小的時間單位(例如,小時、分鐘、秒),專注于較大的單位(例如,天、月、年)時,該函數(shù)非常有用。date_trunc 的語法如下:
date_trunc(unit, source);
unit:指定要將源值截斷到的時間單位??梢允且韵轮唬?'microseconds'(微秒)'milliseconds'(毫秒)'second'或'seconds'(秒)'minute'或'minutes'(分鐘)'hour'或'hours'(小時)'day'或'days'(天)'week'或'weeks'(周)'month'或'months'(月)'quarter'或'quarters'(季度)'year'或'years'(年)
通過指定 unit,您可以將 source 的值截斷到所需的時間精度。以下是一些示例:
-- 將時間戳截斷到分鐘
SELECT date_trunc('minute', current_timestamp);
-- 2024-01-17 08:08:00
--
-- 將時間戳截斷到小時
SELECT date_trunc('hour', current_timestamp);
-- 2024-01-17 08:00:00
--
-- 將時間戳截斷到天
SELECT date_trunc('day', current_timestamp);
-- 2024-01-17 00:00:00
--
-- 將時間戳截斷到月
SELECT date_trunc('month', TIMESTAMP '2024-02-16 14:32:45');
-- 2024-02-01 00:00:00
--
-- 將時間戳截斷到年
SELECT date_trunc('year', TIMESTAMP '2024-02-16 14:32:45');
-- 2024-01-01 00:00:00
--
-- 一天開始
SELECT date_trunc('day', current_timestamp);
--
-- 一天結束
SELECT date_trunc('day', current_timestamp) + INTERVAL '1 day' - interval '1 second';
這些查詢將返回截斷到指定單位的日期或時間戳。補充:
me=# select date_trunc('day',date '2018-05-15 09:00:00+08') + interval '9 h';
?column?
------------------------
2018-05-15 09:00:00+08
(1 行記錄)
me=# select date_trunc('day',date '2018-05-15 14:09:04.127444+08') + interval '9 h';
?column?
------------------------
2018-05-15 09:00:00+08
(1 行記錄)
me=# select date_trunc('day',date '2018-05-14 14:09:04.127444+08') + interval '9 h';
?column?
------------------------
2018-05-14 09:00:00+08
(1 行記錄)
me=# select date_trunc('day',time '2018-05-14 14:09:04.127444+08') + interval '9 h';
?column?
----------
09:00:00
(1 行記錄)
me=# select date_trunc('day',timestamp '2018-05-14 14:09:04.127444+08') + interval '9 h';
?column?
---------------------
2018-05-14 09:00:00
(1 行記錄)
me=# select date_trunc('day',timestamptz '2018-05-14 14:09:04.127444+08') + interval '9 h';
?column?
------------------------
2018-05-14 09:00:00+08
(1 行記錄)
me=# select date_trunc('day',timestamptz '2018-05-14 14:09:04.127444+08'+ interval '9 h');
date_trunc
------------------------
2018-05-14 00:00:00+08
(1 行記錄)
總結
到此這篇關于PostgreSQL中date_trunc函數(shù)的語法及一些示例的文章就介紹到這了,更多相關PGSQL date_trunc函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
PostgreSQL查詢修改max_connections(最大連接數(shù))及其它配置詳解
postgresql數(shù)據(jù)庫最大連接數(shù)是系統(tǒng)允許的最大連接數(shù),當數(shù)據(jù)庫并發(fā)用戶超過該連接數(shù)后,會導致新連接無法建立或者連接超時,這篇文章主要給大家介紹了關于PostgreSQL查詢修改max_connections(最大連接數(shù))及其它配置的相關資料,需要的朋友可以參考下2024-01-01
PostgreSQL pg_ctl start啟動超時實例分析
這篇文章主要給大家介紹了關于PostgreSQL pg_ctl start啟動超時的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-01-01
Postgresql數(shù)據(jù)庫角色創(chuàng)建登錄詳解
這篇文章主要為大家介紹了Postgresql數(shù)據(jù)庫角色創(chuàng)建登錄詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-02-02
PostgreSQL 打印日志信息所在的源文件和行數(shù)的實例
這篇文章主要介紹了PostgreSQL 打印日志信息所在的源文件和行數(shù)的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01
pg中replace和translate的用法說明(數(shù)據(jù)少的中文排序)
這篇文章主要介紹了pg中replace和translate的用法說明(數(shù)據(jù)少的中文排序),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01
PostgreSQL數(shù)據(jù)庫timestamp數(shù)據(jù)類型精度進位問題解析
PostgreSQL是一款功能強大的開源關系型數(shù)據(jù)庫管理系統(tǒng),起源于1986年的POSTGRES項目,它支持多種數(shù)據(jù)類型,包括數(shù)值類型、字符串類型、日期時間類型等,本文介紹PostgreSQL數(shù)據(jù)庫timestamp數(shù)據(jù)類型精度進位問題,感興趣的朋友一起看看吧2024-11-11

