【问题标题】:BigQuery - day of week number where Monday = 1BigQuery - 星期一 = 1 的星期几
【发布时间】:2020-02-07 02:37:31
【问题描述】:

是否有一种标准方法可以使用内置函数从 BigQuery 中的日期返回 ISO 标准(星期一 = 1)中的“星期几”(1-7)?

EXTRACT(DAYOFWEEK, <date>) 使用美国格式返回一个数字,即星期日 = 1,这对我的目的不起作用。

我可以创建一个自定义函数来计算 ISO 星期数,但我不确定我是否遗漏了一些我可以使用的内置函数。

【问题讨论】:

  • 不,您没有遗漏任何东西 - 只需使用自定义功能并可选择提交功能请求
  • 谢谢 - 你知道我应该在哪里提交这样的 BigQuery 请求吗?
  • 您可以在Issue Tracker 提交功能请求。如果有帮助,也可以考虑投票:o)

标签: google-bigquery


【解决方案1】:

您可以使用模运算转换为 ISO 标准(星期一 = 1):

MOD(EXTRACT(DAYOFWEEK FROM <date>) + 5, 7) + 1

【讨论】:

    【解决方案2】:

    以下是此类功能的示例 - 只是您可以提供的众多选项之一

    #standardSQL
    CREATE TEMP FUNCTION ISODAYOFWEEK(day DATE) AS ((
      SELECT IF(weekday = 0, 7, weekday) 
      FROM UNNEST([EXTRACT(DAYOFWEEK FROM day) - 1]) weekday 
    ));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-31
      • 1970-01-01
      • 1970-01-01
      • 2016-10-22
      • 2015-05-13
      • 2022-08-10
      相关资源
      最近更新 更多