SQL для переформатирования поля метки времени - PullRequest
0 голосов
/ 24 января 2019

Я использую Java и SQL для запроса таблицы в BigQuery.Я хочу добиться следующего:

  • Извлечь таблицу
  • Переформатировать строку (например, 08 января 2018) в метку времени (например, 2018-01-08 23:59:28UTC)
  • Переместить все новые данные обратно в новую или существующую таблицу.

В данный момент я успешно извлекаю таблицу с помощью:

QueryJobConfiguration queryConfig =
            QueryJobConfiguration.newBuilder(
                    "SELECT *"
                      + "FROM `MyTable` "
                      + "LIMIT 10")
                    .setUseLegacySql(false)
                    .build();

Можно ли включить оператор обновления SQL, который принимает существующее строковое поле времени и форматирует его в соответствии с форматом метки времени?Я знаю, что начальная строка времени не содержит достаточно информации, чтобы быть меткой времени.Я в порядке с отсутствующими значениями, равными 0 (например, 00:00:00 UTC)

Ответы [ 2 ]

0 голосов
/ 24 января 2019

Можно ли включить оператор обновления SQL, который принимает существующее строковое поле времени и форматирует его в соответствии с форматом отметки времени?

См. Ниже пример для BigQuery Standard SQL

#standardSQL
WITH `project.dataset.table` AS (
  SELECT 'Jan 08 2018' AS date_as_string
)
SELECT date_as_string, PARSE_TIMESTAMP('%b %d %Y', date_as_string) date_as_timestamp
FROM `project.dataset.table`   

с результатом

Row date_as_string  date_as_timestamp    
1   Jan 08 2018     2018-01-08 00:00:00 UTC  
0 голосов
/ 24 января 2019

Используйте комбинацию функций, связанных с отметкой времени BigQuery PARSE_TIMESTAMP и FORMAT_TIMESTAMP , чтобы переформатировать отметку времени

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...