Вычисление количества дней между двумя датами в УЛЬЕ

#sql #hive #hql

#sql #улей #hql

Вопрос:

Мне нужно рассчитать количество дней между двумя датами по идентификатору в УЛЬЕ.

Текущая таблица:
ИДЕНТИФИКАТОР Date1 Date2
10 1/14/2020 1/15/2020
10 5/10/2020 5/14/2020
20 3/1/2020 3/31/2020

В желаемой таблице будет дополнительный столбец с DayDiff равным 1, 5, 31

Любой пример кода улья для достижения этой цели был бы отличным.

Ответ №1:

Мы будем использовать функцию DATEDIFF() . Вот запрос, который вы бы написали:

 SELECT 
   DATEDIFF(Date_2, Date_1) 
     AS days FROM TableName;
  

Реализация в реальном времени https://learnsql.com/cookbook/how-to-find-the-number-of-days-between-two-dates-in-mysql/#:~:text=Use the DATEDIFF() function to retrieve the number of,, it’s the expiration_date column.)
Используйте функцию DATEDIFF() для получения количества дней между двумя датами в базе данных MySQL. Эта функция принимает два аргумента:

Конечная дата. (В нашем примере это столбец Date_2.) Дата начала. (В нашем примере это столбец Date_1.) Этими аргументами могут быть значения даты / времени даты, выражения, возвращающие значения даты / времени даты, или столбцы типа данных datetime или date.

Эта функция вычитает дату начала из даты окончания и возвращает количество дней в виде целого числа. В нашем примере масло было куплено в ‘2018-07-30’, но его дата Date_2 была ‘2019-08-10’; после Date_1 его можно было есть в течение 376 дней. Обратите внимание, что йогурт был приобретен как устаревший продукт: разница в днях равна -1, а его дата Date_1 позже, чем дата Date_2.

Комментарии:

1. Как бы вы написали код, если бы хотели подсчитать количество дней по идентификатору между Датой1 по вертикали, например, ID 10 разница между Датой1 1/14/2020 и 5/10/2020 Datediff будет 117

2. Не 117, правильным является 157 дней

3. итак, каким будет ваше предлагаемое решение?