postgresql:生成两个时间戳之间的时间间隔计数

postgresql:生成两个时间戳之间的时间间隔计数,postgresql,Postgresql,我正在使用postgres 8.3.12和初学者 我的专栏格式如下:“2013年4月29日晚上9:27:51(或上午9:27:51)” 我正在执行以下操作以将它们设置为时间戳: 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') a

我正在使用postgres 8.3.12和初学者

我的专栏格式如下:“2013年4月29日晚上9:27:51(或上午9:27:51)”

我正在执行以下操作以将它们设置为时间戳:

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
将时间戳(时间'MM/DD/yyyyy at HH:MI:SS AM')作为起始时间的情况
将时间戳(时间'MM/DD/yyyyy at HH:MI:SS AM')作为结束时的情况
我的目标是计算两个时间戳之间的小时数

我看着

在我将它们设置为时间戳之后,是不是很简单
结束-开始作为差异

假设您有两个名为timea和timeb的列,下面将返回PostgreSQL中它们之间的小时数:

SELECT EXTRACT(EPOCH FROM timea - timeb) / 3600 AS hours FROM ...;
还应注意:

EXTRACT(EPOCH FROM timea - timeb)
此外,timea和timeb不需要是列-您可以在这里使用任何您想要的表达式,只要它们是时间戳

将返回两个时间戳之间的秒数-这对于计算分钟数、小时数、天数等非常有用-无论您喜欢什么。尤其是小时,它包含3600秒,因此您只需除以3600即可得到小时数


EXTRACT函数可以为您做各种强大的事情。我建议您查看文档。

假设您有两个名为timea和timeb的列,下面将返回PostgreSQL中它们之间的小时数:

SELECT EXTRACT(EPOCH FROM timea - timeb) / 3600 AS hours FROM ...;
还应注意:

EXTRACT(EPOCH FROM timea - timeb)
此外,timea和timeb不需要是列-您可以在这里使用任何您想要的表达式,只要它们是时间戳

将返回两个时间戳之间的秒数-这对于计算分钟数、小时数、天数等非常有用-无论您喜欢什么。尤其是小时,它包含3600秒,因此您只需除以3600即可得到小时数


EXTRACT函数可以为您做各种强大的事情。我建议您查看相关文档。

您需要退出8.3。它不再受支持。是的-你真的应该至少使用8.4.17,如果不只是升级到9.2.4的话。至少如果你使用8.4.17,你将基本上没有安全问题。哦,你可以试着看看这个问题——你问的或多或少都是同一件事:在这种情况下,恐怕这个版本不是我说的。作为新手,首先要做的是更新到受支持的PostgreSQL的当前版本。你需要离开8.3。它不再受支持。是的-你真的应该至少使用8.4.17,如果不只是升级到9.2.4的话。至少如果你使用8.4.17,你将基本上没有安全问题。哦,你可以试着看看这个问题——你问的或多或少都是同一件事:在这种情况下,恐怕这个版本不是我说的。作为新手,首先要做的是更新到受支持的PostgreSQL的当前版本。