Hive Query用于获取字符串类型的两个日期之间的记录

act*_*ner 10 hive

我试图在Hue上查询字段为st_date和end_date的表.这些字段采用字符串类型值,例如'2014-04-04','2009-10-10'等.假设,我想找到st_date = 2014-04-04' and end_date = '2014-10-10'两个日期之间的记录:

如何编写查询来检索记录WHERE st_date > 2014-04-03 and end_date < 2014-10-09

更具体地说,我遇到与此查询中的日期转换相关的问题.

dps*_*dce 8

询问

   WHERE st_date > '2014-04-03' and end_date < '2014-10-11' 
Run Code Online (Sandbox Code Playgroud)

应该给你想要的结果,因为即使它是一个刺痛,它将按字典顺序进行比较,即'2014-04-04'将永远更大'2014-04-03'.

我在我的样品表上运行它,它完全正常.


sri*_*ran 1

尝试下面的查询。

SELECT *
FROM TABLE
WHERE CAST(TRANSLATE(st_date,"-","") AS BIGINT) > CAST(TRANSLATE("2014-04-03","-","") AS BIGINT)  AND CAST(TRANSLATE(end_date,"-","") AS BIGINT) < CAST(TRANSLATE("2014-10-09","-","") AS BIGINT)
Run Code Online (Sandbox Code Playgroud)