文档说明时间戳支持以下转换:
•浮点数字类型:以秒为单位,以十进制精度解释为unix时间戳
首先,我不知道该怎么解释。如果我有时间戳2013-01-01 12:00:00.423,我可以将其转换为保留毫秒的数字类型吗?因为这就是我想要的。
一般来说,我需要比较时间戳,比如
select maxts - mints as latency from mytable
其中maxts和mint是时间戳列。现在,这给了我 NullPointerException
使用hive 0.11.0。我可以执行查询,如果我做了类似的事情
select unix_timestamp(maxts) - unix_timestamp(mints) as latency from mytable
但这只适用于秒,而不是毫秒精度。
谢谢你的帮助。如果你需要更多的信息,请告诉我。
1条答案
按热度按时间pwuypxnk1#
如果要使用毫秒,请不要使用unix时间戳函数,因为这些函数将日期视为自epoch起的秒数。
相反,将jdbc兼容的时间戳转换为double。
例如:
给定制表符分隔的数据:
然后您可以查询starttime(st)和endtime(et)之间的差异(以毫秒为单位),如下所示: