varchar转换datetime问题
- SQL code
declare @a varchar(14)declare @c varchar(6)declare @b datetimeset @a ='20111101000000'set @c = substring(@a,1,8)print @cset @b = convert(datetime,@c,120)print @b
打印结果是
201111
11 11 2020 12:00AM
这是为什么?
[解决办法]
1.你定的@c 最大才6字,如果大於6截取前6. 所以是 201111
2.Datetime 默打印的格式 是 MM DD YYYY hh:mimi AM(PM) , 因你的@c 是 201111 SQL解析成YYMMDD(20年11月11日),所以你打印出的是 11 11 2020 12:00AM
[解决办法]
- SQL code
declare @a varchar(14)declare @c varchar(8) --楼主注意这里,截取的是8位,但定义了6位。declare @b datetimeset @a ='20111101000000'set @c = substring(@a,1,8)print @cset @b = convert(datetime,@c,112)print @b
[解决办法]
- SQL code
declare @a varchar(14)declare @c varchar(8)declare @b datetimeset @a ='20111101000000'set @c = substring(@a,1,8)print @cset @b = convert(VARCHAR(10),@c,120)print CONVERT(VARCHAR(10),@b,120)
[解决办法]
- SQL code
declare @a varchar(14)declare @c varchar(6) declare @b datetime set @a ='20111101000000' print CONVERT(VARCHAR(23),CONVERT(DATETIME,LEFT(@a,8)),121)
[解决办法]
- SQL code
declare @a varchar(14)set @a ='20111101000000' print CONVERT(VARCHAR(23),CONVERT(DATETIME,LEFT(@a,8)),121)