Улей запрос не возвращает результат - PullRequest
0 голосов
/ 12 июня 2019

Запрос 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');

необходимо получить данные за последний месяц до даты.

Ответы [ 2 ]

0 голосов
/ 12 июня 2019

В дополнение к предыдущему ответу ниже приведен код, который вы обязательно должны попробовать

Функция 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)
0 голосов
/ 12 июня 2019

Я думаю, вы можете использовать «МЕЖДУ». Потому что вы работаете между двумя датами и, может быть, больше, чем выступлениями

SELECT *
  FROM your_table
  WHERE your_date_column BETWEEN '2018-09-01' AND '2019-06-01';
...