фильтр по первым 4 цифрам значения временной метки в стандартном SQL BigQuery - PullRequest
0 голосов
/ 25 октября 2018

У меня есть переменная, где записи являются датой (отметка времени).Точный формат такой: 2009-03-01 00:00:00 UTC.

Я хочу отфильтровать все строки с 2009 годом (первые 4 цифры метки времени).Я использую Google BigQuery стандартный SQL.Я попробовал следующее:

WHERE LEFT(CAST(incurred_month_timestamp as STING), '4') LIKE 2013

Если кто-то может поделиться запросом, это будет полезно.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 28 октября 2018

Более простым способом является использование встроенной функции year в BigQuery Legacy SQL, которая извлекает год из временной отметки.

Вот пример с вашим кодом.

where year(incurred_month_timestamp) == 2009
0 голосов
/ 25 октября 2018

Не используйте строковые функции для дат!BigQuery имеет множество полезных функций даты / времени / отметки времени.

Вам нужно: extract():

where extract(year from incurred_month_timestamp) = 2013

Или используйте диапазон:

where incurred_month_timestamp >= timestamp('2013-01-01') and
      incurred_month_timestamp < timestamp('2014-01-01')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...