将带有前导零的数字保存到字符串变量或列中时,前导零将被截断。
当我运行此查询时:
declare @varchar as nvarchar(50)
set @varchar = 011
print @varchar
Run Code Online (Sandbox Code Playgroud)
我得到的结果是 11。
有没有办法得到011?
AMt*_*two 12
在您的代码示例中,011是数字,而不是字符串。SQL Server011将11其简化为数字等效项,然后将其另存11为您在@varchar变量中看到的字符串。
如果您希望将数字视为字符串而不是数字,只需将其用引号括起来即可。此外,由于您的变量是 unicodenvarchar而不是简单的varchar,您应该在带引号的字符串前加上N.
这将打印字符串,保留前导零,使用nvarchar如上:
DECLARE @nvarchar AS nvarchar(50);
SET @nvarchar = N'011';
PRINT @nvarchar;
Run Code Online (Sandbox Code Playgroud)
但同样的情况也适用于 varchar:
DECLARE @varchar AS varchar(50);
SET @varchar = '011';
PRINT @varchar;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
126 次 |
| 最近记录: |