34,588
社区成员
发帖
与我相关
我的任务
分享
@BeginDate='2008-04-09' ---些时已经默认是 2008-04-09 00:00:00
addteadd(second,-1,addteadd(day,1,@EndDate))
DECLARE @BeginDate Datetime
DECLARE @EndDate datetime
set @BeginDate = '2008-4-9'
set @EndDate = '2008-4-10'
select @BeginDate --> 2008-04-09 00:00:00.000
select dateadd(second, -2, @EndDate + 1) -->2008-04-10 23:59:59.000
--> 有一个问题,就是导致毫秒级的丢失
select * from 表 where BeginDate >= @BeginDate and EndDate <= dateadd(second, -1, @EndDate + 1)
--> 还不如1楼所言,来得精确:
select * from 表 where BeginDate >= @BeginDate and EndDate < @EndDate + 1
dateadd(ss,-1,dateadd(dd,1,@enddate)) -- '2008-4-10 23:59:59'
DECLARE @BeginDate Datetime
DECLARE @EndDate datetime
set @BeginDate = '2008-4-9'
if @BeginDate='2008-4-9 00:00:00'
print 'OK' -- this will show
set @EndDate = '2008-4-10'
if dateadd(ms,-3, dateadd(day, 1, @endDate) ) = '2008-4-10 23:59:59'
print 'is it?' -- this will not show
else if dateadd(second,-1, dateadd(day, 1, @endDate) ) = '2008-4-10 23:59:59'
print 'O<' -- this will show