#sql #datetime #amazon-redshift #date-arithmetic
#sql #дата и время #amazon-redshift #дата-арифметика
Вопрос:
У меня есть 2 столбца start_date и end_date, мне нужно вывести третий столбец как date_diff, как показано ниже:
Ответ №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. Большое спасибо. Он работал так, как он предназначен для работы.