Hive 具有字符串数据类型的配置单元表中的最高日期

Hive 具有字符串数据类型的配置单元表中的最高日期,hive,Hive,我是个蜂巢新手,需要你的帮助。我的要求是从表中获取最高日期,并且我的日期数据类型是string。我尝试使用max(),但它不适用于字符串数据类型。。。请在这方面帮助我。使用内置的日期函数 unix\u时间戳将字符串日期转换为unix\u时间戳为int,这是可比较的 假设您的表名为t,时间列为tt 从t中选择max(unix\u时间戳(tt,'yyyyymmdd') 将为您找到maxunix\u时间戳,它是最新的日期使用内置的日期函数 unix\u时间戳将字符串日期转换为unix\u时间戳为int

我是个蜂巢新手,需要你的帮助。我的要求是从表中获取最高日期,并且我的日期数据类型是string。我尝试使用max(),但它不适用于字符串数据类型。。。请在这方面帮助我。

使用内置的日期函数

unix\u时间戳
字符串日期
转换为
unix\u时间戳
int
,这是可比较的

假设您的表名为
t
,时间列为
tt

从t中选择max(unix\u时间戳(tt,'yyyyymmdd')

将为您找到max
unix\u时间戳,它是最新的日期

使用内置的日期函数

unix\u时间戳
字符串日期
转换为
unix\u时间戳
int
,这是可比较的

假设您的表名为
t
,时间列为
tt

从t中选择max(unix\u时间戳(tt,'yyyyymmdd')

将为您找到max
unix\u时间戳,它是最新的日期

您断言max
对配置单元中的字符串不起作用,但事实上:

Select MAX(dt) FROM (Select explode(Array("20150103", "20150102")) as dt) a;

只要您的日期字符串的格式可以按字母顺序排序,
MAX
就可以正常工作。

您认为
MAX
在配置单元中对字符串不起作用,但实际上它确实起作用:

Select MAX(dt) FROM (Select explode(Array("20150103", "20150102")) as dt) a;
只要日期字符串的格式可以按字母顺序排序,
MAX
就可以正常工作。

因为0.12.0版本MAX(date)就可以正常工作

如果该列中的所有值都与模式“yyyy-mm-dd”匹配,则上述语法应执行此操作,因为0.12.0版本max(date)将正常工作


如果该列中的所有值都与模式“yyyy-mm-dd”匹配,则上述语法应执行此操作

字符串格式是什么?可能会显示一些示例数据。20150908(yyyyMMdd)是“我的日期”列的格式,在表格中创建为字符串数据类型字符串格式是什么?可能会显示一些示例数据。20150908(yyyyMMdd)是“我的日期”列的格式,在表格中创建为字符串数据类型。这对我有效:从表格限制1中选择max(cast(cpd_dt as int))。在您的情况下,这可能有效。但是如果时间格式类似于
2015-09-08
Hi,这对我来说很有效:从表限制1中选择max(cast(cpd_dt as int)),在您的情况下,这可能有效。但是如果时间格式类似于
2015-09-08