【问题标题】:Date interval filter日期间隔过滤器
【发布时间】:2020-05-28 20:03:34
【问题描述】:

我的查询中有一个过滤器,例如:

 where business_day BETWEEN date_add('day',-14, CURRENT_DATE) AND date_add('day',-2,CURRENT_DATE) 

如何将其调整到当前日期前 14 天而不是前 2 天前 14 天?只需将子句后半部分的 -2 替换为 0 即可:

where business_day BETWEEN date_add('day',-14, CURRENT_DATE) AND date_add('day',0,CURRENT_DATE) 

或者会有更清洁的方法吗?

谢谢!

【问题讨论】:

    标签: sql date presto


    【解决方案1】:

    这个表达式是空操作:

    date_add('day',0,CURRENT_DATE) 
    

    它实际上返回CURRENT_DATE

    我发现使用interval 语法更容易理解日期算术。如果你没有未来的日期,你可以这样做:

    where business_day >= current_date - interval '14' day
    

    如果有未来的日期,那么:

    where business_day >= current_date - interval '14' day and business_day <= current_date
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-29
      • 2013-03-22
      • 1970-01-01
      • 1970-01-01
      • 2016-07-21
      • 2016-07-20
      • 2019-08-01
      • 1970-01-01
      相关资源
      最近更新 更多