我用格式编写了SQL表达式:
select date1,date2,
cast ( Floor ( timestampdiff (4, char ( timestamp (DATE2)-
timestamp (DATE1)))/1440) as char (3))||'days' ||' '
|| cast ( Floor ( Mod ( timestampdiff (4, char( timestamp (DATE2)-
timestamp (DATE1))) , 1440) / 60) as char (3)) ||'hours'
所以我在几分钟内有所不同,然后将其转换为数天和数小时。 示例结果将是:
DATE1 DATE2 DIFFERENCE
2012-01-01 10:00:00 2012-01-03 12:00 2 days 2 hours
2012-01-03 11:00:00 2012-01-03 12:00 0 days 1 hours
这是我现在得到的结果,没关系。 但是现在我希望得到具有AVERAGE值的单独结果。 所以第一行的分钟数是3000。 第二行的分钟数是60。 平均值为(3000 + 60)/ 2 = 1530 = 1天1小时
所以我想要这种格式的结果:平均值:“1天1小时”
我正在使用db2。 谢谢
答案 0 :(得分:0)
我不知道db2,但是我为sql server做过,猜猜不会有太多变化
你需要的是聚合函数中的OVER()子句
select *, DATEDIFF(hour, date1, date2)/24 as days
,DATEDIFF(hour, date1, date2)%24 as hours
,DATEDIFF(hour, date1, date2) as asdf,
AVG(DATEDIFF(hour, date1, date2)) over() as avgHours
from #temp