Alg*_*ant 4 json google-bigquery google-cloud-firestore
我在 BigQuery 中有一个字符串化的 JSON 列,如下所示:
{"status":0,"buyEquipment":false,"created":{"_seconds":1603578346,"_nanoseconds":909000000},"total":0,"events":{"1603578346909":{"status":0}},"approvalStatus":0,"userId":"xAdkXoah6LMXI4xy9SZ14NUGJIH3","facilityId":"-MF_DJYYyRKbW4fs91v_","orderSize":0,"facility":{"name":"Data Center ehf.","photo":"-MF_cjRQ3dWW3NRMJC6I","province":"Southern Peninsula","city":"Reybaer"},"priceKWh":0.01}
Run Code Online (Sandbox Code Playgroud)
我试图从中提取某些值,如下所示:
SELECT
JSON_EXTRACT(data, '$.created') AS Date_Created
FROM table
Run Code Online (Sandbox Code Playgroud)
我得到这样的信息:
{"_seconds":1607095273,"_nanoseconds":847000000}
Run Code Online (Sandbox Code Playgroud)
因为它显然是嵌套的。我不熟悉从 (Firestore) 导入的数据库如何处理时间戳对象,但这就是将其导入 BigQuery 的方式。
我愿意
我尝试了各种 BigQuery 内置函数但无济于事。谢谢你!
Mik*_*ant 11
我想...只需将其提取为一种格式,这样就可以在 BigQuery 中轻松转换为人类可读的日期。
使用如下(非常不言自明)
select
date(timestamp_seconds(cast(json_extract(data, '$.created._seconds') as int64))) AS Date_Created
from table
Run Code Online (Sandbox Code Playgroud)
如果应用于您问题中的样本数据 - 输出是
| 归档时间: |
|
| 查看次数: |
1756 次 |
| 最近记录: |