select * from SumDailyByTSPC WHERE SumDate BETWEEN 2004-12-13 AND 2004-12-20相当于:
select * from SumDailyByTSPC WHERE SumDate BETWEEN dateadd(day,2004-12-13,'1900-1-1') AND dateadd(day,2004-12-20,'1900-1-1')
select * from SumDailyByTSPC WHERE SumDate BETWEEN dateadd(day,2004-12-13,'1900-1-1') AND dateadd(day,2004-12-20,'1900-1-1')
set @str='select * from SumDailyByTSPC WHERE SumDate BETWEEN '''+CONVERT(VARCHAR(20),@BeginDate,20)+''' AND '''+CONVERT(VARCHAR(20),@EndDate,20)+''''
print @str
SET @EndDate =GETDATE()此处已经强制性将datetime类型转换成了char(10),而后CONVERT(VARCHAR(20),@BeginDate/@EndDate,20)操作所转换的 @BeginDate/@EndDate 已经是字符串,任你怎么转换,格式也不会变化了。
SET @EndDate =CONVERT(VARCHAR(20),GETDATE(),20)
SET @BeginDate =GETDATE()-7
SET @EndDate =GETDATE()当然不一样,第一次使用convert转换过的'2004-12-20'的格式
第二次是没有转换的格式
多谢各位~~