BigQuery:导入CSV时无法识别的时区

时间:2018-08-01 17:30:34

标签: csv google-cloud-platform timezone timestamp google-bigquery

CSV 文件加载到 BigQuery 时,如何定义时间戳的时区

这些似乎都不起作用:

  • 2018-07-31 11:55:00欧洲/罗马
  • 2018-07-31 11:55:00 CET

我收到以下错误:

  

{位置:“查询”;消息:“无法识别的时区:欧洲/罗马;   无法将'2018-07-31 11:55:00 Europe / Rome'解析为日期时间   字段ts(位置0)从位置0开始”;原因:“ invalidQuery”}

我正在使用以下Go代码从Google Cloud Storage运行导入:

gcsRef := bigquery.NewGCSReference(gcsFilename)
gcsRef.SourceFormat = bigquery.CSV
gcsRef.FieldDelimiter = "|"
gcsRef.Schema = bigquery.Schema{
    {Name: "ts", Type: bigquery.TimestampFieldType},
    {Name: "field2", Type: bigquery.StringFieldType},
    {Name: "field3", Type: bigquery.StringFieldType},
}
loader := bigqueryClient.Dataset("events").Table("mytable").LoaderFrom(gcsRef)
loader.WriteDisposition = bigquery.WriteAppend

job, err := loader.Run(ctx)
if err != nil {
    log.Fatalln("loader.Run", err.Error())
}
status, err := job.Wait(ctx)
if err != nil {
    log.Fatalln("job.Wait", err.Error())
}
if status.Err() != nil {
    log.Fatalln("Job completed with error: %v", status.Err(), status.Errors)
}

1 个答案:

答案 0 :(得分:1)

使其生效-尝试将ts字段声明为字符串,然后您将能够在随后将要使用的任何查询中将其解析为时间戳记-使用已经提到(在注释中)的方法-例如{{ 1}}