簡體   English   中英

PGSQL將時間轉換為秒

[英]PGSQL convert time to second

為什么我收到此代碼錯誤

SELECT EXTRACT(SECOND FROM TIME total_time) from tr_empl_quiz;

我對此代碼有錯誤

SELECT EXTRACT(EPOCH FROM TIMESTAMP total_time) from tr_empl_quiz;

這是我的表內容tr_empl_quiz,類型數據是沒有時區的時間

total_time
============
00:01:00

00:02:00

在此處輸入圖片說明

在此處輸入圖片說明

當您使用extract()函數時,您將獲得日期/時間部分的值。 在您的示例中,秒為零,這就是您得到的。

Postgres使用可能不直觀的名稱epoch來支持您想要的內容。 Epoch返回秒數。 對於日期或日期時間值,這是自1970-01-01(Unix時間的開始)以來的數字。 對於timeinterval它是該interval的總秒數。 所以:

select extract(epoch from time '00:02:00')

返回120。

令人驚訝的是, epoch 文檔沒有提到它適用於time數據類型。 該功能與該功能完全一致。 無論哪種文檔(通常非常出色)都忽略了time 或將time視為interval

對於表中的列,您只需執行以下操作:

SELECT EXTRACT(EPOCH FROM total_time) 
FROM tr_empl_quiz;

要么:

SELECT EXTRACT(EPOCH FROM CAST(total_time as time)) 
FROM tr_empl_quiz;

根據您想要的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM