DATE_DIFF для расчета разницы между двумя датами в BigQuery - PullRequest
1 голос
/ 19 марта 2020

Я пытаюсь определить разницу в секундах между двумя датами в BigQuery.

Рекомендуемый синтаксис:

SELECT DATETIME_DIFF(DATETIME "2010-07-07 10:20:00",DATETIME "2008-12-25 15:30:00", SECOND)

, который работает нормально.

Когда Однако я пытаюсь использовать сохраненные поля, синтаксис работает не так:

with dates as (
SELECT
"2010-07-07 10:20:00" as date1,
 "2008-12-25 15:30:00" as date2
)
SELECT
   DATETIME_DIFF(DATETIME (date2), DATETIME (date1), SECOND)
FROM dates

Я уверен, что это простая ошибка, но хотелось бы знать, почему это не работает так, как ожидалось?

1 Ответ

1 голос
/ 19 марта 2020

Ниже для BigQuery Standard SQL

#standardSQL
WITH dates AS (
  SELECT "2010-07-07 10:20:00" AS date1, "2008-12-25 15:30:00" AS date2
)
SELECT DATETIME_DIFF(DATETIME(TIMESTAMP(date2)), DATETIME(TIMESTAMP(date1)), SECOND)
FROM dates   

Исправление очевидно и ясно видно в приведенном выше коде

Другой вариант:

#standardSQL
WITH dates AS (
  SELECT "2010-07-07 10:20:00" AS date1, "2008-12-25 15:30:00" AS date2
)
SELECT TIMESTAMP_DIFF(TIMESTAMP(date2), TIMESTAMP(date1), SECOND)
FROM dates
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...