【问题标题】:Date to Integer YYYMMDD in Standar SQL (BigQuery)标准 SQL (BigQuery) 中整数 YYYYMMDD 的日期
【发布时间】:2021-02-03 17:52:14
【问题描述】:

我需要在 Bigquery 中将日期转换为格式为 YYYMMDD 的整数。

我试过了:

PARSE_DATE('%Y%m%d', response_date)

但它不起作用(错误:参数类型的函数 PARSE_DATE 没有匹配的签名:STRING,DATE。支持的签名:PARSE_DATE(STRING, STRING) at [1:8])

response_date:日期格式

想要的结果:20210201 作为整数或字符串

如果有人知道正确的语法,那将非常有帮助。谢谢!

【问题讨论】:

    标签: sql google-bigquery


    【解决方案1】:

    一种方法是算术:

    select extract(year from response_date) * 10000 + extract(month from response_date) * 100 + extract(day from response_date)
    

    另一种方法是FORMAT_DATE():

    select cast(format_date('%Y%m%d', response_date) as int64)
    

    【讨论】:

      【解决方案2】:

      另一种选择(可能看起来很有趣/很傻,但很有效

      select  translate('' || response_date, '-', '')     
      

      然后你可以对结果字符串进行任何你需要的转换,或者保持原样(作为字符串)

      ...可以通过以下查询轻松测试

      select  translate('' || current_date(), '-', '')      
      

      有输出

      但显然 - 最好的方法是使用 FORMAT_DATE(),如 Gordon 的回答 :o)

      【讨论】:

        猜你喜欢
        • 2019-07-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-05-12
        • 2015-02-14
        • 2016-11-29
        • 1970-01-01
        相关资源
        最近更新 更多