日期:2014-05-18  浏览次数:20463 次

SQL-一个函数的小问题,求教。
print convert(nvarchar(20),dateadd(month,1,'2012-1-31'),120)
这个的输出是这样的:2012-02-29 00:00:00

print convert(nvarchar(20),dateadd(month,1,2012-1-31),120)
这个的输出就变成:1905-07-04 00:00:00

为什么去掉日期上的引号会出现这个结果?

------解决方案--------------------
因为把2012-1-31当算式了,结果是1980
SQL code

select 2012-1-31 r

r
-----------
1980

select dateadd(month,1,dateadd(d,1980,'1900-01-01')) d

d
-----------------------
1905-07-04 00:00:00.000