繁体   English   中英

如何在 Hive 时间戳中添加天数而不丢失小时、分钟和秒

[英]How can i add days to a Hive timestamp without loosing hours, minutes and seconds

我正在使用 Hive 2.6.5,当我想在时间戳中添加天数时,它不会保留小时、分钟和秒。

示例

SELECT from_unixtime(unix_timestamp(date_add("2021-01-15 09:34:21",2),'yyyyMMdd'),'yyyy-MM-dd HH:mm:ss');

除此之外,它还返回错误的结果:

2020-12-01 **00:00:00**

我希望它返回值2021-01-17 09:34:21

谢谢

  1. date_add 截断
  2. 不必要的 unix_timestamp+from_unixtime 转换

转换为时间戳,添加间隔:

SELECT timestamp("2021-01-15 09:34:21") + interval '2' day;

结果:

2021-01-17 09:34:21.0

时间戳以零毫秒部分显示,它是默认的时间戳表示。 如果您希望它作为没有毫秒的字符串,请使用 date_format 格式化或简单地使用 substr()

SELECT date_format(timestamp("2021-01-15 09:34:21") + interval '2' day,'yyyy-MM-dd HH:mm:ss')

结果:

2021-01-17 09:34:21

同样使用 substr:

SELECT substr(timestamp("2021-01-15 09:34:21") + interval '2' day,1,19)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM