提问人:Samantha Clark 提问时间:2/18/2023 更新时间:11/18/2023 访问量:1273
where 语句中前六个月的 Databricks SQL 语法
Databricks SQL syntax for previous six months in where statement
问:
我试图弄清楚如何在 Databricks 中 SQL 查询的 where 语句中查找过去六个月的数据,但我在语法方面遇到很多问题。
现在我有:
Select * from table
where datediff(add_months(date_column, -6), date_column) = 1
查询不会引发错误,但不会返回任何结果。
答:
3赞
Tom Boyd
2/18/2023
#1
我认为您对 datediff 的期望是错误的。Datediff 告诉您两个日期之间的天数。就您而言,您正在将date_column与date_column进行比较 - 6 个月。这总是 6 个月或 ~180 天。
试试这个。
WHERE date_column > DATEADD(MONTH, -6, CURRENT_DATE())
AKA,其中您的日期列大于当前日期减去 6 个月。
评论
0赞
Samantha Clark
2/21/2023
CURRENT_DATE() 是我需要自己定义的函数吗?
0赞
Tom Boyd
2/22/2023
不。CURRENT_DATE() 返回今天的日期。如果选择 DATEADD(MONTH, -6, CURRENT_DATE()),它应该返回 6 个月前的日期。
0赞
Artem Yevtushenko
11/18/2023
#2
您也可以使用关键字。interval
where `date` >= date_trunc('MONTH', now()) - interval 7 month
评论