Запрос с красным смещением для извлечения разницы дат

#sql #datetime #amazon-redshift #date-arithmetic

#sql #дата и время #amazon-redshift #дата-арифметика

Вопрос:

У меня есть 2 столбца start_date и end_date, мне нужно вывести третий столбец как date_diff, как показано ниже:

start_date конечная дата

Ответ №1:

В Redshift вы можете использовать datediff() и арифметику:

 select t.*, datediff(second, start_date, end_date) / 60.0 / 60 / 24 as diff
from mytable t
 

datediff() подсчитывает количество границ, которые пересекаются между двумя выражениями даты, заданными в качестве второго и третьего аргумента, выраженных в единице, заданной в качестве первого аргумента. Поскольку вам нужен результат в виде десятичного числа дней, вы можете использовать единицу day измерения: вместо этого вы можете вычислить разницу в секундах, а затем преобразовать ее в десятичное число дней.

Конечно, это предполагает, что вы сохраняете свои даты как timestamp s (или что-то подобное). Если вместо этого у вас есть строки, то вам нужно сначала разыграть их, например, используя to_timestamp() .

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

1. Большое спасибо. Он работал так, как он предназначен для работы.