如何获取SAP Hana中两个时间戳值之间的差异?

问题描述

我有两个列时间戳值,并且想找出SAP HANA中这些时间之间的差异。 我还没有找到找到其他数据库一样的最简单方法。为了更好地理解,下面给出了一个示例。

COLUMN1:COLUMN2:

2020年10月1日星期四09:18:08 GMT + 0200(CEST)2020年10月1日星期四15:49:40 GMT + 0200(CEST)

结果列:06小时31分32秒

解决方法

您可以使用xx_between函数(days_between,seconds_between,nano100_between),然后可以进行一些数学运算,例如:

CONCAT(CONCAT(CONCAT(CONCAT(CONCAT(CONCAT(to_varchar(to_integer(DAYS_BETWEEN(ED。“ START_TIME”,ED。“ END_TIME”)),'00'),'D'),-天 to_varchar(to_integer(NANO100_BETWEEN(Table1。“ START_TIME”,Table1。“ END_TIME”)/ 10000000/60/60)-DAYS_BETWEEN(Table1。“ START_TIME”,Table1。“ END_TIME”)* 24,'00')-小时),':'), to_varchar(to_integer((((NANO100_BETWEEN(Table1。“ START_TIME”,Table1。“ END_TIME”)/ 10000000/60/60)-to_integer(NANO100_BETWEEN(Table1。“ START_TIME”,Table1。“ END_TIME”)/ 10000000/60/60 ))* 60),'00')-分钟 ),':'),to_varchar(to_integer(((((((((NANO100_BETWEEN(Table1。“ START_TIME”,Table1。“ END_TIME”))/ 10000000/60/60)-to_integer(NANO100_BETWEEN(Table1。“ START_TIME”,Table1。“ END_TIME“)/ 10000000/60/60))* 60)-to_integer((((NANO100_BETWEEN(Table1。” START_TIME“,Table1。” END_TIME“)/ 10000000/60/60)-to_integer(NANO100_BETWEEN(Table1。” START_TIME“ ,表1。“ END_TIME”)/ 10000000/60/60))* 60))* 60),'00'))

以某种方式编写代码,以了解时间转换方面的情况。如果需要,可以将其缩短很多。