从...开始
SET @DATEFROM = '2014-04-01'
SET @DATETO = '2014-10-01'
...,我正在尝试使用以下过滤器进行查询:
C.DateCreate BETWEEN @DATEFROM AND @DATETO)
或
C.DateCreate >= @DATEFROM AND C.DateCreate <= @DATETO
两者都返回相同的结果集,不包括当前月份(10月份)的数据。
我想要10月份的数据。显然这就是我的设定。请问有解决方法吗?
答案 0 :(得分:1)
您将在4月1日至10月1日之间过滤所有内容 - 并且在10月份不包括任何内容。真的很简单。也许你一直在盯着这个太长时间(严肃而非讽刺)。
如果你想在2014年10月完成所有事情,试试这个:
SET @DATEFROM = '2014-10-01' -- or '2014-04-01' if you truly want to include data back to April
SET @DATETO = '2014-11-01'
-- .
-- .
-- .
C.DateCreate >= @DATEFROM AND C.DateCreate < @DATETO
请注意,我在<=
比较中将<
替换为@DATETO
并将@DATETO
设置为11月1日而不是10月31日 - 因为前者是11月1日的午夜(也就是说,任何比这更小的东西都会像你想要的那样落到十月到最后一刻。
答案 1 :(得分:1)
如果你想要十月,并且你想使用这些限制,我建议:
C.DateCreate >= @DATEFROM AND C.DateCreate < DATEADD(MONTH, 1, @DATETO)