Google Bigquery Legacy SQL - 如何将周数设置为星期一?
Posted
技术标签:
【中文标题】Google Bigquery Legacy SQL - 如何将周数设置为星期一?【英文标题】:Google Bigquery Legacy SQL - How to set week number start to Monday? 【发布时间】:2018-02-17 10:23:21 【问题描述】:我听说旧版 sql 中的 UTC_USEC_TO_WEEK() 函数允许您将开始周设置为星期一(而不是默认的星期日)。基本上,我希望查询的以下日期返回 1 而不是 2。
select week('2018-01-07') -- returns 2
我已经看到如何在标准 sql 中执行此操作,但我正在查询旧版 sql 视图,因此无法切换到标准 sql。
如何使用 UTC_USEC_TO_WEEK 将星期一作为一周的开始?
文档帮助不大,在网上也找不到任何东西。 对此的任何帮助将不胜感激!
【问题讨论】:
【参考方案1】:只需返回一天DATE_ADD()
,然后申请WEEK()
#legacySQL
SELECT WEEK(DATE_ADD('2018-01-07', -1, "DAY"))
【讨论】:
我应该提到我也在按周进行汇总和分组(但理想情况下,这应该作为一个单独的问题提出)。总而言之,您已经回答了我发布的问题!为此,我感谢@Mikhail Berlyant!【参考方案2】:基本上是在寻找这个week(utc_usec_to_week(current_date(),1)) - 1
,所以这将返回前一周,星期一作为一周的开始。
【讨论】:
以上是关于Google Bigquery Legacy SQL - 如何将周数设置为星期一?的主要内容,如果未能解决你的问题,请参考以下文章
如何通过 BigQuery 连接将 use_legacy_sql=False 传递给 Airflow DAG 中的 SqlSensor?
如何在 Bigquery Legacy SQL 中创建真正的函数
Bigquery Standard Sql 等效于 Legacy Sql 中的 LAST()
BigQuery Legacy SQL(子查询?)中占总数的百分比
Bigquery Standard Sql 等效于 Legacy Sql 中的 GROUP_CONCAT_UNQUOTED