postgresql Extract 函數的使用


Extract 屬於 SQL 的 DML(即數據庫管理語言)函數,同樣,InterBase 也支持 Extract,它主要用於從一個日期或時間型的字段內抽取年、月、日、時、分、秒數據,因此,它支持其關健字 YEAR、MONTH、DAY、HOUR、MINUTE、SECOND、WEEKDAY、YEARDAY。

 

 

Extract 的使用語法為:

EXTRACT(關健字 FROM 日期或時間型字段)

例如:我們想從一個入庫表(RK)的"入庫時間(INTIME)"(此入庫時間為 TIMESTAMP 型)字段內提取相應的時間數據。有如下形式:
語名 說明
SELECT EXTRACT(YEAR FROM INTIME) FROM RK 從INTIME字段中提取年份
SELECT EXTRACT(MONTH FROM INTIME) FROM RK 從INTIME字段中提取月份
SELECT EXTRACT(DAY FROM INTIME) FROM RK 從INTIME字段中提取日
SELECT EXTRACT(HOUR FROM INTIME) FROM RK 從INTIME字段中提取時
SELECT EXTRACT(MINUTE FROM INTIME) FROM RK 從INTIME字段中提取分
SELECT EXTRACT(SECOND FROM INTIME) FROM RK 從INTIME字段中提取秒


關舉一個實際一點的例子:
假如我們想在一個數據表中生成一個含有發生日期及序列號的關健字段。這種情況在很多數據庫應用中都會發生。
首先,我們應先定義一個 Generator,取名為 AUTOID,然后在相應的表中書寫觸發器,形式如下:


CREATE TRIGGER "TRI_BI_AUTOID" FOR "TABLE1"
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
NEW.PBID=CAST(EXTRACT(YEAR FROM CAST('NOW' AS DATE)) AS VARCHAR(4))||
CAST(EXTRACT(MONTH FROM CAST('NOW' AS DATE)) AS VARCHAR(2))||
CAST(EXTRACT(DAY FROM CAST('NOW' AS DATE)) AS VARCHAR(2))||
CAST(GEN_ID(AUTOID,1) AS VARCHAR(12));
END


這樣,一個能自動以日期及序列號為代碼的字段數據就產生了。
當然 FROM 后面也支持:CURREND_TIMESTAMP、CURREND_DATE、CURREND_TIME等。
歡迎轉載,但請保留出處,本文章轉自[華軟網] 原文鏈接:http://www.huarw.com/db/InterBase/200512/17797.html

 

================

時間格式轉時間戳
select extract(epoch from CAST('2021-09-07 00:00:00' as TIMESTAMP)) 或
select extract('epoch' from '2021-09-07 00:00:00'::TIMESTAMP)

CAST 轉換數據類型
epoch 新紀元時間

EXTRACT(關健字 FROM 日期或時間型字段)
說明 :從xx 提取 xx ,例
SELECT EXTRACT(YEAR FROM INTIME) FROM RK 從INTIME字段中提取年份


當前時間戳
select extract(epoch from now())


時間戳轉日期
select to_timestamp(1630984982)

時間戳轉日期,並輸出格式
select to_char(to_timestamp(1630984982),'YYYY-MM-DD HH24:MI:SS' )

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM