SQL getdate给我带来了问题?

时间:2014-06-13 12:49:57

标签: sql sql-server sql-server-2008 tsql

我有以下内容,什么都没有返回,甚至没有错误:

SELECT col1, COUNT(col1)
  FROM table1
  WHERE col1 IN ('a','b','c')
  AND col2 IN (1,2,3)
  AND (col3 BETWEEN GETDATE() AND DATEADD(MONTH,-1,GETDATE()))
  GROUP BY col1

然而,这很好用:

SELECT col1, COUNT(col1)
  FROM table1
  WHERE col1 IN ('a','b','c')
  AND col2 IN (1,2,3)
  GROUP BY col1

如何使用日期?基本上我想看到从1个月回到今天的结果。

2 个答案:

答案 0 :(得分:4)

切换它

col3 BETWEEN DATEADD(MONTH,-1,GETDATE()) AND GETDATE()

它是

some_column between lower_date and greater_date

答案 1 :(得分:0)

另请注意,BETWEEN是包容性的。如果您不想包含边框值,请使用大于(>)等于(=)和小于(<)运算符的任意组合。 例如:

col3 >= DATEADD(MONTH,-1,GETDATE()) AND col3 < GETDATE()