Формат отметок времени Firestore в BigQuery SQL для Data Studio - PullRequest
1 голос
/ 02 октября 2019

Мы импортируем данные нашего Firestore в BigQuery для создания отчетов в Data Studio.

Следуем работам для отметок времени SQL, но не для отметок времени Firestore-JSON.

SELECT 
    PARSE_TIMESTAMP('%Y%m%d', JSON_VALUE(`data`, "$.updated_at")) AS `updated_at`
FROM 
    `project.firestore_export.profiles_raw_latest`

Наши датыв формате Firestore timestamp в столбце data в поле JSON с именем updated_at.

Как получить формат даты, пригодный для использования в конечном итоге в Data Studio?

Редактировать: Когда я запрашиваю поле без JSON_VALUE, оно возвращается как null, это стандартный формат метки времени в Firestore. При предварительном просмотре данных в BigQuery они возвращаются в виде объекта JSON: {"_seconds":1569585420,"_nanoseconds":586000000}

1 Ответ

2 голосов
/ 02 октября 2019

Предполагая, что вам не нужна точность в секунду, вы можете использовать:

#standardSQL
with sample_table as (
  select '{"_seconds":1569585420,"_nanoseconds":586000000}' as ts
  )
select PARSE_DATETIME("%s", JSON_EXTRACT_SCALAR(ts, "$['_seconds']"))
from sample_table;

Выход:

+---------------------+
|         f0_         |
+---------------------+
| 2019-09-27T11:57:00 |
+---------------------+

Если вам нужна большая точность в вашей отметке времени, вы можете использовать timestamp_micros () .

...