Как сделать SQL запрос AWS Athena Presto совместимым - PullRequest
0 голосов
/ 27 февраля 2020

У меня запрос SQL выглядит следующим образом.

EXTRACT(EPOCH FROM (i.intime-p.dob)::INTERVAL)/86400 as age

Сначала вычитается две метки времени i.intime-p.dob, а затем применяется extract, epoch, interval и делится на 86400 чтобы вычислить его как age.

Следует отметить, что столбец p.dob имеет формат 2138-07-17, а i.intime - 2138-07-17 21:20:07.

Я использовал следующий модифицированный запрос в AWS Афина, но я не уверен, выполняет ли он ту же функцию, что и исходный EXTRACT(EPOCH FROM (i.intime-p.dob)::INTERVAL)/86400 as age.

Мой измененный AWS запрос Афины находится под.

date_diff('second',  p.dob, i.intime) as age

Может ли кто-нибудь подтвердить, что оба запроса (исходный и измененный AWS athena one) генерируют одинаковые значения age?

Не думаю, что они генерируют те же значения.

Моя цель - использовать AWS Афина, чтобы повторить результат простого EXTRACT(EPOCH FROM (i.intime-p.dob)::INTERVAL)/86400 as age

1 Ответ

1 голос
/ 27 февраля 2020

Похоже, что вы sh определите количество дней между двумя датами.

Вы можете просто использовать:

SELECT DATE_DIFF('day', p.dob, i.intime)

Вот тест:

SELECT DATE_DIFF('day', CAST('2019-01-01' AS DATE), CAST('2020-01-01' AS DATE))

Result : 365

SELECT DATE_DIFF('day', CAST('2020-01-01' AS DATE), CAST('2021-01-01' AS DATE))

Result: 366 (Leap year!)
...