首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

DATETIME OR VARCHAR,该怎么解决

2012-08-26 
DATETIME OR VARCHARSQL codedeclare @a datetimeselect @ayear(getdate())select @agodeclare @a varcha

DATETIME OR VARCHAR

SQL code
declare @a datetimeselect @a=year(getdate())select @agodeclare @a varchar(20)select @a=year(getdate())select @a-----------------------1905-07-06 00:00:00.000(1 行受影响)--------------------2012(1 行受影响)


这是为啥阿,结果不一样。变成1905年了。

[解决办法]
第一个:
declare @a datetime 定义日期类型变量@a
select @a=year(getdate()) 给日期@a赋值 @a = 2012相当于 @a = DATEAdd ( day , 2012 , '1900-01-01' )
select @a 所以返回值应该是DATEAdd ( day , 2012 , '1900-01-01' )

第二个:
declare @a varchar(20) 定义可变字符串类型变量@a
select @a=year(getdate()) 给字符串赋值 @a = 2012
select @a 所以返回值就是2012

热点排行