簡體   English   中英

有沒有辦法減去 2 個時間戳並在 Redshift 中以 'hh:mm:ss' 格式獲得結果

[英]Is there a way to subtract 2 timestamps and get the result in 'hh:mm:ss' format in Redshift

我一直在嘗試使用兩個時間戳之間的持續時間

select timestamp1-timestamp2 as time_s
from table_name

但我得到的結果是:

00:00:06.070627
00:00:33.415313
00:00:51.293319
00:02:00.146453
00:02:25.600623
00:06:37.811005
00:28:27.698517

我不想要 ' 之后的值. '

我嘗試使用

split_part(time_s, '.',1)

但它給了

6070627
33415313
51293319
120146453
145600623
397811005
1707698517

有人可以幫忙嗎?

兩個時間戳之間的差異是INTERVAL

您遇到的基本問題是沒有顯示或返回間隔的標准方法。 例如:

  • 如果您在基於 Web 的 Redshift 查詢編輯器中嘗試查詢,它將返回 NULL
  • 如果您在特定的 SQL 客戶端中運行它,它將返回00:00:06.070627
  • 如果您在 DbVisualizer 中運行它,它將返回0 years 0 mons 0 days 0 hours 0 mins 0.0 secs
  • 如果您在 DataGrip 中運行它,它會返回Invalid character data was found

當您嘗試將結果的一部分提取到. ,Redshift 很困惑,因為它看不到 output 在您的 SQL 客戶端中顯示的方式

避免 SQL 客戶端對結果做奇怪事情的最好方法是將答案轉換為 TEXT

SELECT (timestamp1 - timestamp2)::TEXT

這給出了如下答案: 24 days 13:57:40.561373

然后你可以像操作字符串一樣操作它:

SELECT SPLIT_PART((timestamp1 - timestamp2)::TEXT, '.', 1)

這給出: 24 days 13:57:40

底線:當 SQL 結果看起來很奇怪時,將結果轉換為 TEXT 或 VARCHAR 以查看數據的真實情況。

暫無
暫無

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

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