Я пытаюсь работать с набором данных, который мы начали извлекать, и, конечно, «devicereceipttime» хранится в виде строки, и я не могу никого убедить изменить его прямо сейчас.Однако «год», «месяц», «день» и «час» разбиты на отдельные поля как «целые».Это выглядит следующим образом:
devicereceipttime(string) year(int) month(int) day(int) hour(int)
2018-06-19T05:00:06.265Z 2018 6 19 5
2018-06-19T18:53:56.776Z 2018 6 19 6
2018-06-19T02:10:05.252Z 2018 6 19 2
2018-06-19T12:14:01.395Z 2018 6 19 12
Я использую Impala и хотел бы выполнить запрос, аналогичный приведенному ниже, но тот, который будет работать с указанными выше типами, либо просто используя строковое значение «devicereceipttime», либо"г / м / д"Я хочу снять целую неделю (7 дней подряд), поэтому я, вероятно, запланирую отчеты для запуска в CDSW по субботам или понедельникам.
Этот запрос я использовал, когда формат строки даты и времени был "гггг-мм"-dd чч: мм: сс "
select *
from winworkstations_realtime
where devicereceipttime BETWEEN concat(to_date(now() - interval 1 days), " 00:00:00") and concat(to_date(now() - interval 8 days), " 24:00:00")
Было бы лучше использовать строку или попытаться выяснить это с помощью набора целых чисел?