【问题标题】:How to get Day name in Google BigQuery如何在 Google BigQuery 中获取日期名称
【发布时间】:2015-07-09 13:30:42
【问题描述】:

如何在 Google BigQuery 中获取日期的日期名称。

我可以通过下面的查询来实现这一点

SELECT CASE WHEN DAYOFWEEK(CURRENT_DATE())=1 THEN 'Sunday' WHEN DAYOFWEEK(CURRENT_DATE())=2 THEN 'Monday'
             WHEN DAYOFWEEK(CURRENT_DATE())=3 THEN 'Tuesday' WHEN DAYOFWEEK(CURRENT_DATE())=4 THEN 'Wednesday'
             WHEN DAYOFWEEK(CURRENT_DATE())=5 THEN 'Thusday' WHEN DAYOFWEEK(CURRENT_DATE())=6 THEN 'Friday'
             WHEN DAYOFWEEK(CURRENT_DATE())=7 THEN 'Saturday' END as [DOW]

是否有任何默认函数可用于获取当天的名称?

【问题讨论】:

    标签: google-bigquery


    【解决方案1】:

    是的,standardSQL 和 legacySQL 中都有等效的函数。

    标准 SQL

    您可以使用 FORMAT_DATE() 函数,您可以使用任何您喜欢的日期格式。 Link to Docs

    例子:

    #standardSQL
    SELECT
      CURRENT_DATE() AS date,
      FORMAT_DATE('%A', CURRENT_DATE()) AS dow
    

    旧版 SQL

    有 STRFTIME_UTC_USEC() 函数。不过,它需要先将您的时间戳转换为 USEC。 Link to docs

    例子:

    #legacySQL
    SELECT
      CURRENT_DATE() AS date,
      STRFTIME_UTC_USEC(TIMESTAMP_TO_USEC(TIMESTAMP(CURRENT_DATE())), '%A') AS dow
    

    【讨论】:

    • 使用旧版 SQL 实际上可以更简单:SELECT CURRENT_DATE() AS date, STRFTIME_UTC_USEC(CURRENT_DATE(), '%A') AS dow
    【解决方案2】:

    在 Google 的 Big Query 中,使用的函数是:format_datetime('%A',yourdate) 而不是 2017 年发布的 format_date。

    【讨论】:

      【解决方案3】:

      不,没有。根据query reference 上的文档(您应该为其添加书签:)),尤其是DateTime ones

      您可以使用 DAYOFWEEK() 获取当天的编号,就像您在查询中所做的那样。但就是这样。

      【讨论】:

        【解决方案4】:

        正如上述Medur Mamutov所述。可以利用format_date 功能并利用不同的formatting elements

        对于完整的工作日名称,请尝试: SELECT FORMAT_DATE("%A", CURRENT_DATE())

        【讨论】:

          猜你喜欢
          • 2016-10-22
          • 2019-03-06
          • 1970-01-01
          • 2015-10-21
          • 2017-12-03
          • 2017-03-17
          • 2012-01-12
          相关资源
          最近更新 更多