Flag1
是一个varchar
列,其值为“true”和“false”。我需要将其转换为位列。
当我尝试这样做时:
Convert(Bit,Flag1)
它显示一个错误
Msg 245, Level 16, State 1, Line 2
Syntax error converting the varchar value 'False' to a column of data type bit.
最佳答案
我怀疑在字段“Flag1”中除了“true”和“false”以外还有其他值。因此,检查Flag1中的值。
从YouTable中选择不同的Flag1。
这是我的证明:
declare @Flag varchar(25) = 'False'
select CONVERT(Bit, @Flag)
它工作正常。
但是,这将产生相同的错误。
declare @Flag varchar(25) = ' False' -- Pay attention to the the space in ' False'!
select CONVERT(Bit, @Flag)
->消息245,第16层,状态1,第2行
将varchar值“False”转换为数据类型位时,转换失败。
请注意错误消息中“False”中的空格!
关于sql - 如何将varchar列转换为SQL SERVER中的bit列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22382997/