declare @birthday datetime
set @birthday =1988-1-1
select @birthday
这个运行的结果为什么是:1905-06-10 00:00:00.000还有
declare @birthday varchar
set @birthday ='1988-1-1'
select convert(datetime,@birthday)
报错:
消息 241,级别 16,状态 1,第 22 行
从字符串转换日期和/或时间时,转换失败。
set @birthday =1988-1-1
select @birthday
这个运行的结果为什么是:1905-06-10 00:00:00.000还有
declare @birthday varchar
set @birthday ='1988-1-1'
select convert(datetime,@birthday)
报错:
消息 241,级别 16,状态 1,第 22 行
从字符串转换日期和/或时间时,转换失败。
declare @birthday datetime
set @birthday ='1988-1-1'
select @birthday
/*
1988-01-01 00:00:00.000
*/
date类型的数据:1905-06-10
set @birthday ='1988-1-1'
select convert(datetime,@birthday)/*-----------------------
1988-01-01 00:00:00.000(1 行受影响)
declare @birthday varchar(20)
set @birthday ='1988-1-1'
select convert(datetime,@birthday)
/*
1988-01-01 00:00:00.000
*/
第二种情况应该给定义的varchar一个长度。例如varchar(20)
set @birthday ='1988-1-1'
select @birthday