有没有办法在between语句的where子句中使用dateadd()?

时间:2015-11-06 15:38:09

标签: sql where-clause dateadd

这是我的问题。

在我的where子句中,我试图将between子句与日期一起使用。在我添加的第二个日期,我需要它返回输入日期之后的第二天。

例如:where DATE between '2015-05-01' and '2015-05-31'是我希望用户输入的内容,但我希望数据库将其读作where DATE between '2015-05-01' and '2015-06-01'

我试过了: where DATE between '2015-05-01' and dateadd('d', 1, '2015-05-31')

这显然给了我一个语法错误。我也尝试过使用子查询,但也无效。

有没有人有任何想法或建议有帮助?或者这在SQL中是不可能的?任何建议将不胜感激!

谢谢!

2 个答案:

答案 0 :(得分:1)

https://msdn.microsoft.com/es-es/library/ms186819(v=sql.120).aspx

d没有引号

<强> Sql Fiddle Demo

select *
from Table1
where mydate between '2015-10-02' and dateadd(d, 2, '2015-10-02')

答案 1 :(得分:0)

您不需要在d周围使用撇号:dateadd('d', 1, '2015-05-31')

您可以将语句写为where DATE between '2015-05-01' and dateadd(d, 1, '2015-05-31')