减去Oracle中的ISO 8601时间戳



我想减去ISO 8601格式的两个时间戳(2021-08-24T12:59:35Z - 2021-08-24T12:59:05Z)我认为最简单的方法是将时间戳转换为epoch,然后减去。只是不能正确使用转换的语法。如何将20121-08-24t12:59:05 z转换为:1629809975 ?

正如注释所说,这在很大程度上取决于您希望如何格式化结果。

如果您可以使用INTERVAL,那么最简单的事情就是使用TO_UTC_TIMESTAMP_TZ,它实际上采用ISO 8601格式的字符串作为参数:

SELECT TO_UTC_TIMESTAMP_TZ('2021-08-24T12:59:35Z') - TO_UTC_TIMESTAMP_TZ('2021-08-24T12:59:05Z') AS RESULT
FROM DUAL;

返回如下结果:

tbody> <<tr>
RESULT
+ 000000000 00:00:30.000000000

最新更新