如何在Amazon Redshift查询select上个季度/最近2个月的数据
How to select last quarter / last 2 months of data in Amazon Redshift query
我知道这是一个简单的问题,但我才刚刚开始探索 Redshift,还不能google找到答案。
在 MSSQL 服务器中,我使用以下 WHERE 子句:
上季度:
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)
在本季度的 Redshift 中,我出来了:
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 纪元值而不是 0。有没有更好的方法来设置它?
非常感谢!
在 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)
我知道这是一个简单的问题,但我才刚刚开始探索 Redshift,还不能google找到答案。
在 MSSQL 服务器中,我使用以下 WHERE 子句:
上季度:
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)
在本季度的 Redshift 中,我出来了:
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 纪元值而不是 0。有没有更好的方法来设置它?
非常感谢!
在 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)