bigQuery не поддерживает отметки времени в миллисекундах - PullRequest
0 голосов
/ 11 мая 2018

В моем csv-файле для метки времени указано значение «1522865628160». Когда я загружаю данные в bigQuery, где этот тип поля является меткой времени, он сохраняет метку времени как «1522865628160000». поэтому, когда я запрашиваю как

select * from <tablename> limit 1

это дает мне ошибку

Невозможно вернуть недопустимое значение временной метки 1522865628160000000 микросекунд относительно эпохи Unix. Диапазон допустимых значений меток времени: [0001-01-1 00:00:00, 9999-12-31 23: 59: 59.999999]; ошибка записи поля времени "

помогите пожалуйста

1 Ответ

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

Я думаю, что проблема заключается в том, что вы пытались загрузить данные метки времени UNIX в столбец метка времени в BigQuery. Столбец отметки времени BigQuery не совпадает с отметкой времени UNIX. Последнее представляет собой просто числовое значение, представляющее количество секунд с начала эпохи UNIX в 1970 году.

Таким образом, исправлением здесь будет загрузка ваших данных в столбец INT64 (или INTEGER, если вы используете устаревшую версию). Оттуда вы можете преобразовать свою метку времени UNIX в истинную дату или метку времени.

Существует MSEC_TO_TIMESTAMP() функция , которая может преобразовывать целое число миллисекунд со времени UNIX в истинную временную метку, например,

SELECT MSEC_TO_TIMESTAMP(1522865628160)

2018-04-04 11:13:48 UTC
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...