在 PostgreSQL 9.4 上计算两个小时之间的时差

Calculate the difference between two hours on PostgreSQL 9.4

给定一个 table 如下:

    create table meetings(
    id integer primary key,
    start_time varchar,
    end_time varchar
)

考虑到这个table中存储的字符串遵循格式'HH:MM'并且有24小时格式,PostgreSQL 9.4上有没有我可以将字段转换为时间的命令,计算差异在它们之间,以及 return 可用完整小时数的单一结果?

例如:start_time: '08:00' - end_time: '12:00' 结果必须是 4.

在您的特定情况下,假设您正在使用时钟值(它们都属于同一天),我想您可以这样做

(clock_to::time - clock_from::time) as duration

请允许我为您准备好 运行 示例:

with cte as (
  select '4:00'::varchar as clock_from, '14:00'::varchar as clock_to
)
select (clock_to::time - clock_from::time) as duration
from cte