Hive查询未返回数据(行数为0)。
需要从表中检索截至/当前日期的1个月前的记录。
select * from table1
where date_format(order_date,'yyyy-MM-dd') >= date_format(add_months(current_date,-1),'yyyy-MM-01')
and date_format(order_date,'yyyy-MM-dd') <= date_format(current_date,'yyyy-MM-dd');
需要检索到目前为止的过去1个月的数据。
答案 0 :(得分:0)
我认为,您可以使用“ BETWEEN”。因为您在两个约会之间工作,而且可能不止是表演
SELECT *
FROM your_table
WHERE your_date_column BETWEEN '2018-09-01' AND '2019-06-01';
答案 1 :(得分:0)
除了前面的答案外,以下是您肯定应该尝试的代码
hive中的DATE_SUB
函数可让您用整数减去日期,因此在我们的例子中30表示一个月**
要将字符串转换为日期,可以使用TO_DATE()
或DATE()
函数。
**一个月的定义因您的用例而异。在这种情况下,我们考虑将每月间隔30天。如果您的用例要求将日历月视为月份,请改用add_months
函数
SELECT columns
from TABLE_NAME
WHERE YOUR_DATE_COLUMN_NAME
BETWEEN DATE(CURRENT_DATE) AND DATE_SUB(CURRENT_DATE, 30)