Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 在hh:mi:ss中给定呼叫开始的时间戳和呼叫持续时间时,如何计算呼叫结束的时间戳?_Sql_Oracle_Timestamp - Fatal编程技术网

Sql 在hh:mi:ss中给定呼叫开始的时间戳和呼叫持续时间时,如何计算呼叫结束的时间戳?

Sql 在hh:mi:ss中给定呼叫开始的时间戳和呼叫持续时间时,如何计算呼叫结束的时间戳?,sql,oracle,timestamp,Sql,Oracle,Timestamp,我有一个标记为Call_Timestamp的字段,它是呼叫开始的日期/时间。然后我有一个标记为Call_Time的字段,它是hh:mi:ss中呼叫的持续时间。如何将Call_Time添加到Call_时间戳中,以获得通话结束的时间戳?谢谢大家! 您可以使用: SELECT call_timestamp + ( TO_TIMESTAMP( call_time, 'HH24:MI:SS' ) - TO_TIMESTAMP( '00:00:00', 'HH

我有一个标记为Call_Timestamp的字段,它是呼叫开始的日期/时间。然后我有一个标记为Call_Time的字段,它是hh:mi:ss中呼叫的持续时间。如何将Call_Time添加到Call_时间戳中,以获得通话结束的时间戳?谢谢大家!

您可以使用:

SELECT call_timestamp + ( TO_TIMESTAMP( call_time, 'HH24:MI:SS' )
                        - TO_TIMESTAMP( '00:00:00', 'HH24:MI:SS' ) )
         AS call_end_timestamp
FROM   your_table
或:

更好的做法是将
CALL\u TIME
字段存储为
INTERVAL DAY to SECOND
类型,然后您可以添加两个:

SELECT call_timestamp + call_time AS call_end_timestamp
FROM   your_table

如果您将调用的持续时间存储在字符串中,则说明您做得不对。不是Oracle专家,但
call\u Time
应为类型。如果是VARCHAR2,则使用将其转换为一个间隔,然后可以将该间隔添加到现有时间戳(
Call\u timestamp
)中,以获取呼叫结束时的新时间戳。我相信您应该能够使用
+
运算符为时间戳添加一个间隔。@BaconBits的答案是正确的。虽然我相信在一小时和一天之间需要一个空间。如果遇到问题,请尝试在零后面添加空格。
call\u timestamp
call\u time
的数据类型是什么?(注意:尽管第一个被称为“时间戳”,但它实际上可能是
varchar2
,而不是时间戳。)你问题的答案很大程度上取决于你文章中缺少的这个关键细节。
SELECT call_timestamp + call_time AS call_end_timestamp
FROM   your_table