hive中的时间戳转日期的函数为:
from_unixtime(BIGINT unixtime,STRING format)
首先这里我要说一下,这里的unixtime的输入单位十秒,也就是十位的BIGINT。
但是呢,在我们实际中用的时间戳一般都是十三位的时间戳,精确到毫秒了,如果将精确到毫秒的时间戳输入方法中会有错误,出现错误的日期。
解决办法:如果是13位的时间戳,可使用下面的方法
from_unixtime(cast(timestamp/1000 as bigint)) as time
注意:timestamp/1000 是一个double的数值类型,所以直接使用cast函数变成bigint就可以了