我看到了足够多的帖子,我们可以将它们除以1000或进行强制转换,以将毫秒级时间转换为时间戳。我想知道如何在时间戳中保留毫秒部分。
1440478800123最后3个字节为毫秒。我如何将其转换为YYYYMMDDHHMMSS.sss
我还需要在转换后的时间戳中捕获毫秒部分
谢谢
小智 5
select cast(epoch_ms as timestamp)
Run Code Online (Sandbox Code Playgroud)
实际上有效,因为当强制转换为时间戳时(与使用from_unixtime()相对),Hive似乎假定int或bigint为毫秒。浮点类型被视为秒。据我所知,这是未记录的,可能是一个错误。我想要一个包含时区的字符串(这可能很重要-特别是在服务器更改为夏令时/夏时制的情况下),并希望在转换功能更改时对转换进行明确说明。因此,这给出了一个ISO 8601日期(根据其他格式的需要调整格式字符串)
select from_unixtime(
floor( epoch_ms / 1000 )
, printf( 'yyyy-MM-dd HH:mm:ss.%03dZ', epoch_ms % 1000 )
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9517 次 |
| 最近记录: |