如何在postgresql中将时间间隔转换为十进制值?
运行此查询时:如何在postgresql中将时间间隔转换为十进制值?,sql,date,casting,amazon-redshift,Sql,Date,Casting,Amazon Redshift,运行此查询时: SELECT start_date, end_date, end_date-start_date as timediff FROM content_events 我有一张这样的桌子: +---------------------+---------------------+-----------------+ | start_date | end_date | timediff | +-------------
SELECT
start_date,
end_date,
end_date-start_date as timediff
FROM content_events
我有一张这样的桌子:
+---------------------+---------------------+-----------------+
| start_date | end_date | timediff |
+---------------------+---------------------+-----------------+
| 2017-03-23 23:00:00 | 2017-04-01 22:00:00 | 8 days 23:00:00 |
+---------------------+---------------------+-----------------+
+---------------------+---------------------+-----------------+
| start_date | end_date | timediff |
+---------------------+---------------------+-----------------+
| 2017-03-23 23:00:00 | 2017-04-01 22:00:00 | 8,96 |
+---------------------+---------------------+-----------------+
但我想得到这样的东西:
+---------------------+---------------------+-----------------+
| start_date | end_date | timediff |
+---------------------+---------------------+-----------------+
| 2017-03-23 23:00:00 | 2017-04-01 22:00:00 | 8 days 23:00:00 |
+---------------------+---------------------+-----------------+
+---------------------+---------------------+-----------------+
| start_date | end_date | timediff |
+---------------------+---------------------+-----------------+
| 2017-03-23 23:00:00 | 2017-04-01 22:00:00 | 8,96 |
+---------------------+---------------------+-----------------+
请注意,我只需要将时间差作为一个带两个小数点的数值
我正在使用PostgreSQL 8.0.2
非常感谢 此
select
语句工作正常:
(date_part(epoch,end_date)::float - date_part(epoch,start_date)::float)/(24*60*60) as timediff
还有这个:
(extract(epoch from end_date)::float - extract(epoch from start_date)::float)/(24*60*60) as timediff
选择…,从内容事件中提取(从结束日期到开始日期的历元)/(24*60*60)作为时间差代码>你确定这个版本吗?@VaoTsun Yep,这是我得到的:i686 pc linux gnu上的PostgreSQL 8.0.2版本,由GCC GCC(GCC)3.4.2 20041017(Red Hat 3.4.2-6.fc3)编译,红移1.0.1232ah,红移…hi@Abelisto刚刚意识到,在屏幕截图中可以看到,计算在某些日期无法正常工作,使用开始日期:“02/04/17 22:00”和结束日期:“20/05/17 22:00”时,差异不正确。返回时间为78天。注:列“剩余天数”是结束日期和当前日期之间的差值