我正在尝试在Hive中实现MySQL等效的date_format( your_date_column, '%Y-%m-%d %H' ) as my_date
。我尝试了Hive date formatting中的一些选项,但无法正确使用格式。我还没有找到任何帮助过我的东西。
我可以请求可能已经遇到过这种情况或知道该怎么做的人吗?
答案 0 :(得分:5)
最新版本的Hive有一个date_format()
function,它只使用java格式代码而不是C.尝试date_format(your_date_column, 'yyyy-MM-dd HH')
答案 1 :(得分:1)
要将日期转换为给定的字符串格式,您必须使用hive的from_unixtime()
功能
from_unixtime(bigint unixtime[, string format])
将unix epoch(1970-01-01 00:00:00 UTC)的秒数转换为表示当前系统时区中该时刻的时间戳的字符串。
最终查询是
select from_unixtime(unix_timestamp(),'yyyy-MM-dd HH') as my_date from table1;
其中table1是我的配置单元数据库中的表名。
我希望这有助于您实现date_format( your_date_column, '%Y-%m-%d %H' )
!!!
答案 2 :(得分:0)
我使用concat(substr(your_date_column,1,13), ':00')
如果date列有一个保留关键字,例如timestamp
,就像我的情况一样,这可以工作 - concat(substr(`timestamp`,1,13),':00')
答案 3 :(得分:0)
假设您的表中有一列“ birth_day_H”为字符串格式, 您应该使用以下查询来使用birth_day_H
进行过滤date_Format(birth_day_H, 'yyyy-MM-dd HH')
您可以通过以下方式在查询中使用它
select * from yourtable
where
date_Format(birth_day_H, 'yyyy-MM-dd HH') = '2019-04-16 10';