计算 Hive 24 小时后的日期

Calculate a date in behind 24 hours Hive

我的需求真的很傻,所以基本上我需要在 Hive 的时间戳列中返回 24 小时的时间。

到目前为止,我已经尝试了两种不同的方法,但都没有通过:

 select 
 recordDate, --original date
 cast(date_sub(cast(recorddate as timestamp),1) as timestamp),  -- going one day behind without hour
cast((cast(cast(recorddate as timestamp) AS bigint)-1*3600) as timestamp)  -- crazy year
 from mtmbuckets.servpro_agents_events limit 10;

我的输出看起来是:

感谢您能给予我的支持。

感谢

配置单元中没有直接的函数。

1 为此创建 UDF。

以秒为单位转换日期并计算(-24 *60*60)秒,然后将 int 更改回数据。

使用 from_unixtime 和 unix_timestamp 实现以下代码。

 select from_unixtime(unix_timestamp(recorddate) - 86400)
 from mtmbuckets.servpro_agen ts_events limit 10;;

From_unixtime 将具有给定模式的时间字符串转换为 Unix 时间戳(以秒为单位)此函数的结果以秒为单位。

Unix_timestamp

将格式为 yyyy-MM-dd HH:mm:ss 的时间字符串转换为 Unix 时间戳(以秒为单位),使用默认时区和默认语言环境,return 如果失败则为 0:unix_timestamp('2009-03-20 11:30:01') = 1237573801