我是Hive的新手。尝试使用以下查询获取前一天的日期:
SELECT MAX(id) FROM store_rcd_table
WHERE recon_dt = unix_timestamp(date_sub(from_unixtime(unix_timestamp(),
'yyyy-MM-dd'),1),'yyyy-MM-dd')
但是将NULL作为输出。输出应该是日期(2017-09-23)和MAX(id)。
也尝试了,
Select MAX(id) FROM store_rcd_table
WHERE recon_dt ='2017-09-24';
此查询也没有输出,只是确定即将作为输出。
没问题是什么?任何建议/帮助表示赞赏。
表的结构是:
id string
locationid string
mngrid string
empid string
deleted boolean
recon_dt string
答案 0 :(得分:3)
尝试select date_sub(current_date, 1);
0: jdbc:hive2://hiveserver2:1> select date_sub(current_date, 1);
+-------------+--+
| _c0 |
+-------------+--+
| 2017-09-24 |
+-------------+--+
1 row selected (0.182 seconds)
原始尝试是date_sub(CAST(unix_timestamp()*1000 AS TIMESTAMP), 1)
,但显然这是错误的。见评论
如果没有结果,则应检查源数据以查看recon_dt
实际上是什么。 (另外值得指出的是,你在问题中使用了两个不同的表格)