在 SQL 中使用 DATEADD() 筛选最近 3 个月的数据
Filtering data for the last 3 months using DATEADD() in SQL
我正在尝试显示过去三个月的数据,因此使用了
SELECT my_date::date AS my_date, my_col
FROM my_table
WHERE my_date >= DATEADD(MONTH, -3, GETDATE())
GROUP BY my_date
ORDER BY my_date DESC
但是我得到以下错误
ERROR: column "month" does not exist
LINE 10: WHERE process_date >= DATEADD(MONTH, -3, GETDATE())
^
SQL state: 42703
Character: 651
我不确定为什么它不喜欢 MONTH,我正在尝试使用 DATEADD(),如此处所示 https://www.w3schools.com/sql/func_sqlserver_dateadd.asp DATEADD(interval, number, date)
.
我应该如何过滤过去 3 个月的数据以及为什么 DATEADD() 似乎不起作用?
感谢@VvdL 的评论。
PostgreSQL 使用不同的命令。更改为以下并有效。
WHERE my_date >= current_date - INTERVAL '3 months'
我正在尝试显示过去三个月的数据,因此使用了
SELECT my_date::date AS my_date, my_col
FROM my_table
WHERE my_date >= DATEADD(MONTH, -3, GETDATE())
GROUP BY my_date
ORDER BY my_date DESC
但是我得到以下错误
ERROR: column "month" does not exist
LINE 10: WHERE process_date >= DATEADD(MONTH, -3, GETDATE())
^
SQL state: 42703
Character: 651
我不确定为什么它不喜欢 MONTH,我正在尝试使用 DATEADD(),如此处所示 https://www.w3schools.com/sql/func_sqlserver_dateadd.asp DATEADD(interval, number, date)
.
我应该如何过滤过去 3 个月的数据以及为什么 DATEADD() 似乎不起作用?
感谢@VvdL 的评论。
PostgreSQL 使用不同的命令。更改为以下并有效。
WHERE my_date >= current_date - INTERVAL '3 months'