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/

10-16 08:56