我在蜂巢中的表格有一个日期格式为'2016/06/01'.但我发现它的格式不是'2016-06-01'.他们无法比较.它们都是字符串.所以我想知道如何让它们变得有害并可以比较它们.或者另一方面,如何将'2016/06/01'改为'2016-06-01'以便他们可以比较.
非常感谢.
Far*_*que 21
要将日期字符串从一种格式转换为另一种格式,您必须使用hive的两个日期函数
unix_timestamp(string date, string pattern) 将给定模式的时间字符串转换为unix时间戳(以秒为单位),如果失败则返回0.from_unixtime(bigint unixtime[, string format]) 将unix epoch(1970-01-01 00:00:00 UTC)的秒数转换为表示当前系统时区中该时刻的时间戳的字符串.使用上述两个功能,您可以获得所需的结果.
最后的查询是
select from_unixtime(unix_timestamp('2016/06/01','yyyy/MM/dd'),'yyyy-MM-dd') from table1;
Run Code Online (Sandbox Code Playgroud)
其中table1是我的hive数据库中的表名.
我希望这能帮到你!!!
假设您的表中有一个“birth_day”列采用您的格式,您应该使用以下查询将birth_day 转换为所需的格式。
date_Format(birth_day, 'yyyy-MM-dd')
Run Code Online (Sandbox Code Playgroud)
您可以通过以下方式在查询中使用它
select * from yourtable
where
date_Format(birth_day, 'yyyy-MM-dd') = '2019-04-16';
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
57865 次 |
| 最近记录: |