我试图根据前一个日期从hive表中获取记录。 示例:如果表格如下
CustomerVisit 表
ID NAME VISIT_DATE
------------------
01 Harish 2018-02-31
03 Satish 2017-02-13
04 Shiva 2018-03-04
现在我需要获取所有visit_date = 2018-03-04
的记录(即今天的日期-1)。
预期查询类似于:
select ID, Name from CustomerVisit where
visit_date like concat((select date_sub(current_date, 1)),'%')
我试过以下
select current_date; - Gives current date
select date_sub(current_date, 1) - Gives previous date
select concat(tab1.date1,'%') from
(select date_sub(current_date, 1) as date1) as tab1; -- Gives the previous date appended with % which i need to use in like
但是当我使用上面的子查询时,如下所示,它失败了
select tab2.id, (select concat(tab1.date1,'%') as pattern from
(select date_sub(current_date, 1) as date1) as tab1) from CustomerVisit as tab2 limit 1;
失败:ParseException行1:0无法识别'seelct''current_date''附近的输入''
如何编写查询以获取上一个日期的结果?
答案 0 :(得分:0)
您不需要LIKE
条款。只需选择使用等于(=
)
select ID, Name from CustomerVisit where
visit_date = date_sub(current_date, 1);