Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google bigquery 在BigQuery中解析日期时间_Google Bigquery - Fatal编程技术网

Google bigquery 在BigQuery中解析日期时间

Google bigquery 在BigQuery中解析日期时间,google-bigquery,Google Bigquery,下面是“date”字段的日期格式,我从API到Bigquery将其作为字符串获取。 2020-09-17T00:00:00+03:00 我想将日期格式解析为“%Y%m%d”,然后将其提取为ISOWEEK。 这是我想出的代码 EXTRACT(ISOWEEK FROM PARSE_DATETIME("%Y%m%d", REGEXP_EXTRACT(date, r"..................."))) 然而,这给了我一个错误。 你能告诉我什么需要改变

下面是“date”字段的日期格式,我从API到Bigquery将其作为字符串获取。 2020-09-17T00:00:00+03:00 我想将日期格式解析为“%Y%m%d”,然后将其提取为ISOWEEK。 这是我想出的代码

EXTRACT(ISOWEEK FROM PARSE_DATETIME("%Y%m%d", REGEXP_EXTRACT(date, r"...................")))
然而,这给了我一个错误。 你能告诉我什么需要改变吗?
谢谢

让我们在这里分解步骤。日期输入是特定时区(+03:00)中的日期字符串,例如
“2020-09-17T00:00:00+03:00”
。然后在此字符串上可以应用:

  • 将日期保持在正确的时区
日期(“2020-09-17T00:00:00+03:00”,“03:00”)
  • 使用字符串中所需的格式格式化日期
FORMAT_DATE(“%Y/%m/%d”,日期(“2020-09-17T00:00:00+03:00,“+03:00”))
  • 从先前格式化的字符串中解析日期
PARSE_DATE(“%Y/%m/%d”,格式_DATE(“%Y/%m/%d”,日期(“2020-09-17T00:00:00+03:00”),“+03:00”))
  • 最后从日期中提取ISOWEEK
EXTRACT(从解析日期(“%Y/%m/%d”,格式为“%Y/%m/%d”,日期(“2020-09-17T00:00:00+03:00”),“+03:00”)开始的一周)
所以,这会给你想要的结果

选择提取(从解析日期(“%Y/%m/%d”,格式为日期(“%Y/%m/%d”,日期(DATE)))开始的一周)
如果“%Y/%m/%d”在其他方面对您没有帮助,您也可以跳过它,只需执行以下操作即可

选择摘录(从日期开始的一周(“2020-09-17T00:00:00+03:00”,“03:00”))
结果是一样的