我最近改用postgreSQL,在为timestampiff
寻找替代方案时遇到了同样的困难
我最初的查询有点像
select a.column_a, a.column_b, TIMESTAMPDIFF(SQL_TSI_MINUTE, a.TIME_START, now()) AS "Time_diff"
from table as a
where
...
我只能做( now() - a.TIME_START)
,但我想在几分钟内显示结果。postgresql中有没有更好的替代方案可以从现在开始做减法,并在几分钟内显示结果?
now() - a.TIME_START
返回一个interval
,可以使用extract()
将其转换为秒,也可以转换为分钟:
extract(epoch from now() - a.time_start) / 60 as diff_minutes
如果您不需要将其作为数字,另一种选择是简单地格式化间隔以显示分钟和秒
to_char(now() - a.time_start, 'mi:ss')
请注意,如果间隔大于60分钟(或大于一天(,这将隐藏信息。如果这种情况也能发生,也许你想使用'dd hh24:mi:ss'
作为格式掩码,而不是