从字符串转换日期和/或时间时,转换失败

xiaoqiang_1234 2013-07-18 07:04:43
遇到一个问题:

消息 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')没有错呢?

为什么存储过程就不能讲串转换成时间?
...全文
2696 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoqiang_1234 2013-07-18
  • 打赏
  • 举报
回复
这么快就有答案了,给力啊
發糞塗牆 2013-07-18
  • 打赏
  • 举报
回复 1
varchar、char如果不指定括号中的长度,就是varchar(1)/char(1),联机丛书有说,存不进日期这么长,就自然报错了
叶子 2013-07-18
  • 打赏
  • 举报
回复 1
默认长度为1,被截断以后再转换格式是不对的。
叶子 2013-07-18
  • 打赏
  • 举报
回复 1
@input varchar 改成 @input varchar(30)

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧