这发生在我刚刚测试的时候.我创建了一个表格
Create Table Test_Table
(
Field_char char(1)
);
Run Code Online (Sandbox Code Playgroud)
当我想用代码插入值
Insert Into Test_Table(Field_char)
Select 13;
Run Code Online (Sandbox Code Playgroud)
它在列中插入'*'.对于单个数字,它按原样插入.如果长度从1修改为2,则对于3位输入(例如100等)也会发生类似的情况.
为什么是这样?
在create语句中,将Field_char的长度设置为1(char(1)).这意味着您的条目必须具有小于或等于1的长度.有效条目为1,2等.无效条目为12,13,因为它们长于1个字符 - >*是占位符以指示无效值.
编辑:(感谢弗拉基米尔)
更准确地看一下这里.
截断和舍入结果
[...]截断char,varchar,nchar,nvarchar,binary和varbinary的转换,但下表中显示的转换除外.
我们有以下条目:
从数据类型int到数据类型char结果*
其中*=结果长度太短而无法显示