问题描述
我有两个列时间戳值,并且想找出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'))
以某种方式编写代码,以了解时间转换方面的情况。如果需要,可以将其缩短很多。