Sql 在hh:mi:ss中给定呼叫开始的时间戳和呼叫持续时间时,如何计算呼叫结束的时间戳?
我有一个标记为Call_Timestamp的字段,它是呼叫开始的日期/时间。然后我有一个标记为Call_Time的字段,它是hh:mi:ss中呼叫的持续时间。如何将Call_Time添加到Call_时间戳中,以获得通话结束的时间戳?谢谢大家! 您可以使用: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
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