如何更改配置单元中的日期格式?

yan*_*hen 9 sql hadoop hive

我在蜂巢中的表格有一个日期格式为'2016/06/01'.但我发现它的格式不是'2016-06-01'.他们无法比较.它们都是字符串.所以我想知道如何让它们变得有害并可以比较它们.或者另一方面,如何将'2016/06/01'改为'2016-06-01'以便他们可以比较.

非常感谢.

Far*_*que 21

要将日期字符串从一种格式转换为另一种格式,您必须使用hive的两个日期函数

  1. unix_timestamp(string date, string pattern) 将给定模式的时间字符串转换为unix时间戳(以秒为单位),如果失败则返回0.
  2. 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数据库中的表名.

我希望这能帮到你!!!


Ter*_*r17 5

假设您的表中有一个“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)