【问题标题】:Difference between two dates in dates using Google bigquery?使用Google bigquery的日期中两个日期之间的差异?
【发布时间】:2018-10-25 08:45:45
【问题描述】:

如何获取 Google Big Query 中 2 个时间戳字段之间的天数差异?

我知道的唯一函数是Datediff,它只适用于旧版 SQL,但我使用的是标准 SQL。

例如:20180115 和 20180220 之间的差是 36 天。

【问题讨论】:

  • 部分原因是 1 月 31 日,也有 2 月 4 日的原因。反正函数不是 DATEDIF 吗?
  • 不,此功能不适用于标准 sql。
  • EXTRACT(DAY FROM DATE '20180220' - DATE '20180115') 怎么样 - 我只是在这里猜测。
  • 不,因为如果他们在不同的月份,那就错了。
  • 我想我真的不知道什么是“标准”sql。

标签: sql google-bigquery datediff date-difference


【解决方案1】:

首先,您需要使用PARSE_DATE() 函数将日期的字符串表示“转换”为日期类型,然后DATE_DIFF() 函数允许您计算两个日期之间的差异/距离,如下例所示

#standardSQL
SELECT 
  DATE_DIFF(
    PARSE_DATE('%Y%m%d', '20180220'), 
    PARSE_DATE('%Y%m%d', '20180115'), 
    DAY
  ) days

产生:

Row days     
1   36   

【讨论】:

    【解决方案2】:

    根据documentation,您应该在标准SQL 中使用DATE_DIFF 函数。

    您的查询应如下所示:

    SELECT DATE_DIFF(DATE '2018-02-20', DATE '2018-01-15', DAY) as days_diff;
    

    结果:

    Row days_diff    
     1     36   
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-29
      • 1970-01-01
      • 2021-06-02
      • 2014-04-07
      • 2022-10-02
      • 2014-02-12
      • 2015-09-14
      • 2015-06-21
      相关资源
      最近更新 更多