select datalength(cast('12345' as nvarchar))查询返回10 (这是可以的),但是
declare @string as nvarchar
set @string = cast('12345' as nvarchar)
select datalength(@string)返回2而不是10。为什么?如何使用DATALENGHT()来确定存储在变量中的字符串的数据长度?
发布于 2020-06-10 18:15:19
始终指定字符数据的长度n。例如
declare @string as nvarchar(30)
set @string = cast('12345' as nvarchar(30))
select datalength(@string)文档中描述了如果不这样做的行为:
当数据定义或变量声明语句中没有指定n时,默认长度为1;如果不使用CAST函数指定n,则默认长度为30。
https://stackoverflow.com/questions/62310142
复制相似问题