0

我想要做的是使用这个查询创建一个工作:

SQL查询:

SELECT execution_id, top_level_execution_id, process_id, atom_id, message, node_id, pay_load, environment_name, status, date_created, custom_message, dynamic_field1, dynamic_field2, dynamic_field3, RecordID FROM [boomi.process_errors]

之后,使用生成的 ID 运行作业并获取结果。

用于创建作业的 JSON:

{
   "configuration":{
      "query":{
         "defaultDataset":{
            "datasetId":"XXX",
            "projectId":"XXX",
            "tableId":"process_errors"
         },
         "query":"SELECT execution_id, top_level_execution_id, process_id, atom_id, message, node_id, pay_load, environment_name, status, date_created, custom_message, dynamic_field1, dynamic_field2, dynamic_field3, RecordID FROM [boomi.process_errors]"
      }
   }
}

样本返回记录:

{
   "execution_id":"execution-c5723421-0fd9-47e3-9241-3520dfebf21d-2021.02.08",
   "top_level_execution_id":"execution-c5723421-0fd9-47e3-9241-3520dfebf21d-2021.02.08",
   "process_id":"b8fb913d-26da-40bc-bce4-11bf65db03db",
   "atom_id":"eae5dcd2-af12-4c99-805e-12ae5bc5a5c5",
   "message":"Error Messae\n",
   "node_id":"atom01",
   "pay_load":"TBD",
   "environment_name":"TEST",
   "status":"ERROR",
   "date_created":"1.612789722974E9",
   "custom_message":"Error hapened in Process",
   "dynamic_field1":"abc123",
   "dynamic_field2":"bca123",
   "dynamic_field3":"abc321",
   "RecordID":null
}

如您所见,日期为 FLOAT64:1.612789722974E9。当我尝试从 bigQuery 控制台将日期格式化为时间戳时,它已经以时间戳的形式出现:2021-02-08 13:08:42.974 UTC。

我试图做的是改用这个查询:

SELECT execution_id, top_level_execution_id, process_id, atom_id, message, node_id, pay_load, environment_name, status, CONCAT(DATE(USEC_TO_TIMESTAMP(CAST(date_created AS INTEGER))), 'T', TIME(USEC_TO_TIMESTAMP(CAST(date_created AS INTEGER)))) as date_created, custom_message, dynamic_field1, dynamic_field2, dynamic_field3, RecordID FROM [boomi.process_errors]

这会给我日期和时间,但不是毫秒。我认为时间也返回毫秒。尝试使用 bigQuery 库中的各种函数,但它们都不适用于 float64。

顺便说一句,我使用 Dell Boomi 作为中间件层来创建作业、检索作业 ID 并运行它。我需要根据从该表中选择的内容自动创建报告,这就是为什么我需要日期时间,包括毫秒。

我认为您可以在用于创建作业的配置中添加一些内容,以便以正常时间戳格式返回日期,但同样,什么也没找到。

即使在 BigQuery 控制台中,它也说它是一个时间戳,那么为什么它存储为 FLOAT64 呢? 在此处输入图像描述

4

1 回答 1

0

没关系,太复杂了。我将列更改为 datetime 并且它有效。

于 2021-02-19T12:46:54.133 回答