Разница между двумя датами в датах с помощью Google BigQuery? - PullRequest
0 голосов
/ 15 мая 2018

Как узнать разницу в днях между двумя полями отметок времени в Google Big Query?

Единственная функция, которую я знаю, это Datediff, которая работает только в устаревшем SQL, но я в стандартном SQL.

Например: разница между 20180115 и 20180220 составляет 36 дней.

Ответы [ 2 ]

0 голосов
/ 16 мая 2018

Сначала вам нужно «перевести» строковое представление даты в тип даты, используя функцию PARSE_DATE(), а затем функцию DATE_DIFF(), позволяющую рассчитать разницу / расстояние между двумя даты как в примере ниже

#standardSQL
SELECT 
  DATE_DIFF(
    PARSE_DATE('%Y%m%d', '20180220'), 
    PARSE_DATE('%Y%m%d', '20180115'), 
    DAY
  ) days

производит:

Row days     
1   36   
0 голосов
/ 15 мая 2018

Согласно документации , вы должны использовать функцию DATE_DIFF в стандартном SQL.

Ваш запрос должен выглядеть следующим образом:

SELECT DATE_DIFF(DATE '2018-02-20', DATE '2018-01-15', DAY) as days_diff;

Результат:

Row days_diff    
 1     36   
...