从字符串转换日期和/或时间时,转换失败
遇到一个问题:
消息 241,级别 16,状态 1,过程 convertdatetimeTest,第 9 行
从字符串转换日期和/或时间时,转换失败。
/*
--datetime convert test
*/
use master
go
create procedure convertdatetimeTest
(
@input varchar
)
as
begin
declare @datetime datetime
set @datetime=CONVERT(datetime,@input)
select @datetime
end
exec convertdatetimeTest '2013-7-17 13:15:07'
执行存储过程时报这个错误?
为什么我直接执行--select CONVERT(datetime,'2013-7-17 13:15:07')没有错呢?
为什么存储过程就不能讲串转换成时间?
------解决方案-------------------- @input varchar 改成 @input varchar(30)
------解决方案--------------------默认长度为1,被截断以后再转换格式是不对的。
------解决方案--------------------varchar、char如果不指定括号中的长度,就是varchar(1)/char(1),联机丛书有说,存不进日期这么长,就自然报错了