繁体   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