【问题标题】:How to select last quarter / last 2 months of data in Amazon Redshift query如何在 Amazon Redshift 查询中选择上个季度/最近 2 个月的数据
【发布时间】:2021-01-22 19:58:07
【问题描述】:

我知道这是一个简单的问题,但我刚刚开始探索 Redshift,还无法通过 google 找到答案。

在 MSSQL 服务器中,我使用以下 WHERE CLAUSE:

上一季度:

WHERE DateTime>= DATEADD(qq,DATEDIFF(qq,0,GETDATE())-1,0) AND DateTime < DATEADD(qq,DATEDIFF(qq,0,GETDATE())-0,0) 

过去 2 个月

WHERE DateTime>= DATEADD(mm,DATEDIFF(mm,0,GETDATE())-2,0) AND DateTime < DATEADD(mm,DATEDIFF(mm,0,GETDATE())-0,0)     

在我出来的那个季度的红移中:

WHERE DateTime>= dateadd(qtr,datediff(qtr,'1970-01-01',current_date)-1,'1970-01-01') AND 
DateTime < dateadd(qtr,datediff(qtr,'1970-01-01',current_date)-0,'1970-01-01')    

过去 2 个月的情况如下:

WHERE DateTime>= dateadd(month,datediff(month,'1970-01-01',current_date)-2,'1970-01-01') AND 
DateTime < dateadd(month,datediff(month,'1970-01-01',current_date)-0,'1970-01-01') 

所以,我必须使用 unix epoch 值而不是 0。有没有更好的方法来设置它?

非常感谢!

【问题讨论】:

    标签: date datetime amazon-redshift where-clause intervals


    【解决方案1】:

    在 Redshift 中,我会使用 date_trunc() 和区间算术。

    上一季度:

    where datetime >= date_trunc('quarter', current_date) - interval '1 quarter'
      and datetime <  date_trunc('quarter', current_date)
    

    过去两个月:

    where datetime >= date_trunc('month', current_date) - interval '2 month'
      and datetime <  date_trunc('month', current_date)
    

    【讨论】:

    • 谢谢。看起来好多了。
    猜你喜欢
    • 1970-01-01
    • 2012-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-18
    • 2014-03-21
    • 2023-03-18
    相关资源
    最近更新 更多