PostgreSQL获取两个文本字段之间的时间差

PostgreSQL获取两个文本字段之间的时间差,postgresql,Postgresql,我有两个类似于表的字段 Time1(varchar) Time2(varchar) 13:01:15 14:02:06 如何获得这两个字段之间的时间差?您可以将值转换为适当的时间值,然后简单地减去它们: '14:02:06'::time - '13:01:15'::time 或 结果是一个真正的问题是:为什么要在varchar列中存储时间值。它应该存储在一个列中,类型为time,实际上它是由其他团队开发的。我使用他们的数据库只是生成报告,我们假设这里的time_

我有两个类似于表的字段

Time1(varchar)     Time2(varchar)
13:01:15           14:02:06

如何获得这两个字段之间的时间差?

您可以将值转换为适当的时间值,然后简单地减去它们:

'14:02:06'::time - '13:01:15'::time 


结果是一个

真正的问题是:为什么要在varchar列中存储时间值。它应该存储在一个列中,类型为time,实际上它是由其他团队开发的。我使用他们的数据库只是生成报告,我们假设这里的time_2总是大于time_1。可能值得将查询更新为greatesttime_1::time,time_2::time-leasttime_1::time,time_2::time@Scoots:时间间隔可以是负的。我可以通过查询在组中使用sumtime_2::time-time_1::time。如果time_2::time-time_1::time output类型为interval@a_horse_with_no_name正如OP想总结的那样,正负间隔的混合将是有害的。诚然,我们两人的评论都是在我们意识到这一点之前提出的。
time_2::time - time_1::time