【问题标题】:Get MONTH NAME from date in BigQuery SQL从 BigQuery SQL 中的日期获取 MONTH NAME
【发布时间】:2019-09-23 12:27:20
【问题描述】:

我正在尝试从 BigQuery 中的日期中提取 MONTH NAME,类型为 DATE(即 2019-09-19)。我试过类似的东西:

SELECT PARSE_DATE('%B',CAST(date_start AS string)) FROM table

但它不起作用。我还尝试了DATE funcs 中的其他一些东西,例如EXTRACTDATETIME funcs,但没有运气。

我知道在其他 SQL 语言中有一些像 MONTHNAME() 这样的函数,但它们在 BQ 中不起作用。

有没有不依赖于 CASE 函数的方法?

谢谢。

【问题讨论】:

    标签: google-bigquery


    【解决方案1】:

    如文档中所述,您需要使用FORMAT_DATETIME function。查询将如下所示:

    SELECT FORMAT_DATETIME("%B", DATETIME(<your_date_column_name>)) as month_name
    FROM <your_table>
    

    Here 您会找到所有可用于显示日期特定信息的参数。

    【讨论】:

    • 有效!我不知道我是怎么错过的,我已经尝试了一段时间了!感谢米格尔!
    • 没问题!我很高兴能帮到你! :)
    【解决方案2】:

    我正在尝试从 BigQuery 中的日期中提取 MONTH NAME,类型为 DATE(即 2019-09-19)

    由于您的字段已经是 DATE 类型 - 您不需要进行任何额外的转换 - 只需:

    FORMAT_DATE('%B', date_start)    
    

    将起作用 - 如下例所示

    #standardSQL
    WITH `project.dataset.table` AS (
      SELECT DATE '2019-09-19' date_start
    )
    SELECT date_start, FORMAT_DATE('%B', date_start) AS month
    FROM `project.dataset.table`   
    

    结果

    Row date_start  month    
    1   2019-09-19  September    
    

    【讨论】:

      猜你喜欢
      • 2022-06-14
      • 1970-01-01
      • 2022-01-15
      • 1970-01-01
      • 2019-03-13
      • 2014-04-21
      • 2015-08-21
      • 1970-01-01
      • 2018-02-25
      相关资源
      最近更新 更多