我Incorrect syntax near '11'.
在SQL Server中收到错误。
有一个存储过程SP_TEST
:
...
@ALISTARIHI datetime
...
AS
BEGIN
...
exec('CONVERT(DATETIME,'+@ALISTARIHI+')')
调用SP_TEST:
exec SP_TEST '08.11.2013'
正如我上面提到的,我得到了错误
'11'附近的语法不正确
当我打电话时。我该如何解决?
注意:上面的某些代码看起来
这么多事情错了。
关于将日期时间转换为日期时间的评论很常见。你为什么做这个?为什么您的日期时间格式不明确?我绝对不知道这是8月11日还是11月8日。尝试使用yyyymmdd
。
假设您确实需要执行此操作,那么为什么要在动态SQL中执行此操作?
假设您确实需要动态SQL,为什么您的语句不完整?即使您在值周围放置字符串定界符,这也有什么用?
CONVERT(DATETIME, '20131108');
哦,是的:
消息156,级别15,状态1
关键字'CONVERT'附近的语法不正确。
该声明甚至还不完整。所以也许你的意思是:
EXEC('SELECT CONVERT(DATETIME,'''+@ALISTARIHI+''')')
但实际上,您可能想要这样的东西:
DECLARE @sql NVARCHAR(MAX) = N'SELECT CONVERT(DATETIME, @d);';
EXEC sp_executesql @sql, N'@d DATETIME', @ALISTARIHI;
但是我仍然不明白为什么要将日期时间转换为日期时间。
PS:为什么要命名变量这么长且难以键入?
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句