背景

TRANSTAMP3、TRANSTAMP2在Oracle数据库中的类型为varchar,但实际保存的值是时间戳timestamp类型,现在要计算二者的毫秒差
Oracle或MySQL
extract(second from (to_timestamp(TRANSTAMP3,'yyyy-mm-dd hh24:mi:ss.ff') - to_timestamp(TRANSTAMP2,'yyyy-mm-dd hh24:mi:ss.ff'))) * 1000
ODPS
数仓使用ODPS存储数据,不能识别操作extract函数,sql如下:
DATEDIFF(to_date(TRANSTAMP3,'yyyy-MM-dd hh:mi:ss.ff3'),to_date(TRANSTAMP2,'yyyy-MM-dd hh:mi:ss.ff3'),'ff3')
本文讨论了如何在Oracle数据库中使用`extract`函数计算VARCHAR表示的时间戳与实际timestamp类型的差值,以及在ODPS数仓环境下,由于功能限制,需用`DATEDIFF`函数以ff3精度计算两个日期的毫秒差距。

1976

被折叠的 条评论
为什么被折叠?



