簡體   English   中英

psql date_trunc問題

[英]psql date_trunc issue

我在psql數據庫中有一個查詢,但是有一個小問題:

select sge_job.j_id,
       sge_job_usage.ju_id,
       sge_job_usage.ju_slots,
       date_trunc ('hour',sge_job_usage.ju_start_time) – date_trunc ('hour',sge_job.j_submission_time) as "Wait time"
from sge_job,
     sge_job_usage
where sge_job.j_id = sge_job_usage.ju_id
and   sge_job_usage.ju_start_time >= sge_job.j_submission_time

問題是我獲取的ju_start_time和j_submission_time信息將保留在小時格式內,但是其中一些信息將是3天12小時。

它們都是沒有時區的時間戳,但是我需要它來計算是否為2天並將其加到小時中。 所以我目前的輸出是:

71 |    71 |        1 | 01:00:00
72 |    72 |        1 | 01:00:00
73 |    73 |        2 | 4 days 03:00:00
74 |    74 |        2 | 01:00:00
75 |    75 |        2 | 03:00:00
76 |    76 |        2 | 03:00:00
77 |    77 |        1 | 22:00:00
78 |    78 |        1 | 18:00:00
79 |    79 |        2 | 19:00:00
80 |    80 |        2 | 20:00:00
81 |    81 |        2 | 20:00:00
82 |    82 |        2 | 11:00:00
83 |    83 |        2 | 21:00:00
84 |    84 |        2 | 1 day 10:00:00
85 |    85 |        2 | 1 day 17:00:00
86 |    86 |        2 | 2 days 17:00:00

所以使用date_trunc hour可以將我的時間格式更改為幾個小時,但是我似乎無法獲得一個擺脫我的日子並將其設置為小時格式的函數,因此我希望86的列為48小時(2天)+ 17 = 65小時,那么您有什么建議可以嘗試嗎? 提前致謝

從另一個時間戳減去一個時間戳會產生一個間隔值。 您必須將該間隔轉換為小時才能顯示。

要將時間間隔轉換為例如小時,請使用以下命令:

extract(epoch from <interval_value>) / 3600

epoch返回秒。 將該值除以3600可得到您幾個小時。

在您的情況下,以下應做您想做的:

extract(epoch from date_trunc('hour',sge_job_usage.ju_start_time) – date_trunc ('hour',sge_job.j_submission_time)) / 3600 as "Wait time"

暫無
暫無

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

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