我正在使用postgres 8.3.12和新手。
我的格式如下:'29 / 04/2013 at 09:27:51 PM(或AM)'
我正在执行以下操作将它们设置为时间戳:
case when <criteria> to_timestamp(time, 'MM/DD/YYYY at HH:MI:SS AM') as start
case when <criteria> to_timestamp(time, 'MM/DD/YYYY at HH:MI:SS AM') as end
我的目标是计算两个时间戳之间的小时数。
我看了http://www.postgresql.org/docs/current/static/functions-datetime.html
在我将它们设置为时间戳之后,它是否简单 结束 - 以差异开始;
答案 0 :(得分:4)
假设您有两个名为timea和timeb的列,以下内容将返回PostgreSQL中它们之间的小时数:
SELECT EXTRACT(EPOCH FROM timea - timeb) / 3600 AS hours FROM ...;
注意:
也许有用EXTRACT(EPOCH FROM timea - timeb)
另外,timea和timeb不需要是列 - 你可以在这里使用你想要的任何表达,只要它们是时间戳。
将在两个时间戳之间返回秒数 - 这对于计算分钟数,小时数,天数等非常有用 - 无论您喜欢什么。特别是,小时数包含3600秒,因此您只需将3600除以得到小时数。
EXTRACT功能可以为您做各种有力的事情。我建议查看相关文档here。