【问题标题】:How to cast date to CDT and make concatenated string using BigQuery?如何将日期转换为 CDT 并使用 BigQuery 制作连接字符串?
【发布时间】:2021-09-27 19:55:28
【问题描述】:

我正在尝试以下方法:

count(distinct concat(x.my_id,cast(date_trunc('day',DATETIME(x.my_datetime,'US/Central')) as string)))

但我得到了错误:

Found invalid date part argument function call syntax for DATETIME()

当我将 DATETIME(x.my_datetime,'US/Central') 放在自己的行上时,它没有错误。那么如何才能将日期时间转换为 cdt 并将其放入串联字符串中呢?

【问题讨论】:

  • 你能分享一个完整的样本数据集和预期的结果吗?您还可以分享一个可重现的查询,以便社区可以轻松调查该问题吗?

标签: google-bigquery


【解决方案1】:

两件事:

  1. date_trunc() 应该有日期/日期时间/时间戳首先,然后是日期部分。
  2. 日期部分应该是文字 day 而不是字符串 'day'。

考虑到这一点,您的表达方式应该是
count(distinct concat(x.my_id,cast(date_trunc(DATETIME(x.my_datetime,'US/Central'), day) as string)))

【讨论】:

  • 请注意,您收到的错误消息是因为 date_trunc() 的第二个参数需要文字日期部分(日、周、月等),但返回的是日期时间,导致错误。
猜你喜欢
  • 1970-01-01
  • 2017-03-17
  • 2018-04-13
  • 1970-01-01
  • 2013-10-29
  • 2016-08-15
  • 1970-01-01
  • 1970-01-01
  • 2014-05-04
相关资源
最近更新 更多