date - Hive:从当前日期减去 1 年

标签 date hadoop hive unix-timestamp subtraction

我试图找到从 Hive 查询中的当前日期减去 1 年和 1 个月的最佳方法。使用以下内容,我认为它不会考虑闰年,或者如果月份的天数不同,那么代码最终会被破坏。任何帮助将不胜感激!

set my_date = from_unixtime(unix_timestamp()-365*60*60*24, 'yyyy-MM-dd');
set my_date = from_unixtime(unix_timestamp()-30*60*60*24, 'yyyy-MM-dd');

谢谢!

-丽贝卡

最佳答案

如果你在 Hive 中有像 yyyy-MM-dd hh:mm:ss 这样的日期格式,使用下面的函数很容易实现

concat((year(date_field)-1),'-', (month(date_field)-1), '-', day(date_field))

使用 IF 和 CASE 函数来实现您的逻辑来判断是否是闰年(通过将年份除以 4)

关于date - Hive:从当前日期减去 1 年,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29104719/

相关文章:

MYSQL 在时间戳上选择日期

Java获取X天后的日期

java - 将长值设为日期并在 Thymeleaf 中格式化

mysql - 将 MySQL 查询转换为 Hive

hadoop - Hive 中的 JOIN 会触发 MapReduce 中的哪种类型的 JOIN?

两个日期戳之间的MySQL时间选择

hadoop - hive 如何处理插入内部分区表?

hadoop - Reducers 如何在 Hadoop 中收集 map 输出

Hadoop数据可视化

python - 如何从python连接到远程hadoop/hive(URL)?