我需要从现在起15天后选择结算日期的所有记录 这没有给我什么,因为它试图比较日期和时间:
"nextbill = dateadd(d, +15, getdate())"
这有效:
"select *
from custrate
where nextbill >= '2014-01-02 00:00:00' and nextbill < '2014-01-02 23:59:59'"
从现在开始忽略时间,如何获得15天的所有内容?
答案 0 :(得分:7)
我会使用>=
的第一天开始,第二天开始使用<
...
declare @from datetime, @thru datetime;
set @from = dateadd(d, datediff(d, 0, getdate()) + 15, 0);
set @thru = dateadd(d, 1, @from);
select ...
from custrate
where nextbill >= @from and nextbill < @thru
答案 1 :(得分:-1)
select *
from custrate
where convert(date,nextbill) = DATEADD(d, 15, convert(date,getdate()))
或更早版本的sql:
select *
from custrate
where DATEADD(dd, DATEDIFF(dd, 0, nextbill), 0) = DATEADD(dd, DATEDIFF(dd, 0, getdate()), 15)