配置单元查询未返回输出

时间:2019-06-12 12:51:51

标签: java plsql hive bigdata

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个月的数据。

2 个答案:

答案 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)