参数数据类型 datetime 对于 substring 函数的参数 1 无效。

其他环境
¥5.00

Sql Server 2012里面执行插入数据得程序,报错:


消息 8116,级别 16,状态 1,第 35 行
参数数据类型 datetime 对于 substring 函数的参数 1 无效。
消息 8116,级别 16,状态 1,第 40 行
参数数据类型 datetime 对于 substring 函数的参数 1 无效。


SQL语句如下:

Insert into TestTable values(@UserId,1,0,1,0,0,0,0,0,0,substring(@CreateTime,1,7),0)


最佳答案

原因分析

Sql Server中substring函数的第一个参数不能是时间类型,你这里的@CreateTime应该是时间类型了,所以Substring报错了

可以考虑把@CreateTime转为字符串类型后再传给substring函数,如下:

Insert into TestTable values(@UserId,1,0,1,0,0,0,0,0,0,substring(Cast(@CreateTime As Varchar(20)),1,7),0)


Substring函数说明如下:


语法:SUBSTRING ( expression ,start , length )


参数说明:


参数:

expression

为 character、binary、text、ntext 或者 image 表达式 。

start

指定返回字符的起始位置的整数或 bigint 表达式 。 (编号从 1 开始,意味着表达式中的第一个字符为 1)。 如果 start 小于 1,则返回的表达式的起始位置为表达式中指定的第一个字符 。 在这种情况下,返回的字符数是后两者中的较大值:start + length 之和减去 1,0。 如果 start 大于值表达式中的字符数,将返回一个零长度的表达式 。

length

是正整数或用于指定要返回的 expression 的字符数的 bigint 表达式 。 如果 length 是负数,会生成错误并终止语句 。 如果 start 和 length 的总和大于表达式中的字符数,则会返回从 start 开始的整个值表达式 。

大数据私房菜 T0 被采纳率100%
2021-02-23 18:18
打赏 0 0
页面统计
33 访问
0 帮助
0.00 打赏

hierror 2019 © hierror.com 京ICP备13026190号-1

通知消息
  • 暂无任何消息