将HIVE-1.0时间戳截断为秒,并将格式从";yyyy:mm:dd:ss.sss";更改为";yyyy:mm:DD:ss"; [英] Truncate hive-1.0 timestamp to seconds and change format from "yyyy:mm:dd:ss.SSS" to "yyyy:mm:dd:ss"
本文介绍了将HIVE-1.0时间戳截断为秒,并将格式从";yyyy:mm:dd:ss.sss";更改为";yyyy:mm:DD:ss";的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
基本标题:
我正在寻找一种合理的方法,仅使用hive-1.0语法来截断时间戳中的毫秒字段。
我正在考虑的超级幼稚的方法是:
cast(from_unixtime(second(cast([TIMESTAMP_IN_QUESTION] as string)), "yyyy:mm:dd:ss"), as timestamp)
但我相信这包括末尾毫秒字段上的.00。
有没有一种干净利落的方法?
推荐答案
首先,正确的时间戳格式是
yyyy-MM-dd HH:mm:ss.SSSSSS
默认情况下,不带毫秒的时间戳将在末尾打印.00
或.0
。因为它是时间戳的字符串表示形式。如果您希望它不包含毫秒部分,请将其转换为字符串并显式指定格式,或仅使用子字符串来获取不包含毫秒的值。Substr()可以正确处理时间戳和字符串文字。如果您只想删除毫秒而不更改其他所有内容,则这是最简单的方法:
select substr('2020-01-01 12:10:10.123',1,19)
退货:
2020-01-01 12:10:10
这篇关于将HIVE-1.0时间戳截断为秒,并将格式从";yyyy:mm:dd:ss.sss";更改为";yyyy:mm:DD:ss";的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文