在hive中,如何将毫秒的unix epoch转换为毫秒的时间戳? cast()和from_unixtime()函数都不能得到毫秒的时间戳。
我试过.SSS
,但函数只是增加了年份,并没有把它作为毫秒的一部分。
scala> spark.sql("select from_unixtime(1598632101000, 'yyyy-MM-dd hh:mm:ss.SSS')").show(false)
+-----------------------------------------------------+
|from_unixtime(1598632101000, yyyy-MM-dd hh:mm:ss.SSS)|
+-----------------------------------------------------+
|52628-08-20 02:00:00.000 |
+-----------------------------------------------------+
2条答案
按热度按时间lnlaulya1#
我想你可以直接
cast()
:注意,这将产生一个 "timestamp "数据类型,而不是一个字符串,如 "from_unixtime()"。
3j86kqsm2#
from_unixtime
适用于秒,而不是毫秒。转换为以秒为单位的时间戳from_unixtime(ts div 1000),用'.'+毫秒(mod(ts,1000))连起来,并转换为时间戳。结果。