Sql server SQL Server-位数据类型与字符串';正确';和';假';

Sql server SQL Server-位数据类型与字符串';正确';和';假';,sql-server,tsql,sql-server-2012,boolean,bit,Sql Server,Tsql,Sql Server 2012,Boolean,Bit,我不确定我正在使用的数据库是否做了一些特殊的操作,但在优化旧代码时,我遇到了以下(经过净化的)查询: 我检查了IsGovernment的数据类型,假设它是varchar(5)或类似的东西,结果发现它是位字段 然后我假设代码是错误的,并通过运行返回IsGovernment字段的查询进行检查。令我大吃一惊的是,我发现查询只返回IsGovernment设置为1的行!因为我当时想知道对字符串文本'False'的检查会返回什么,所以我进行了测试,只发现只返回了零值 可能是我在TSQL更新中遗漏了一些东西,

我不确定我正在使用的数据库是否做了一些特殊的操作,但在优化旧代码时,我遇到了以下(经过净化的)查询:

我检查了
IsGovernment
的数据类型,假设它是
varchar(5)
或类似的东西,结果发现它是
字段

然后我假设代码是错误的,并通过运行返回
IsGovernment
字段的查询进行检查。令我大吃一惊的是,我发现查询只返回
IsGovernment
设置为1的行!因为我当时想知道对字符串文本
'False'
的检查会返回什么,所以我进行了测试,只发现只返回了零值

可能是我在TSQL更新中遗漏了一些东西,或者是有一些复杂的配置使得这个工作正常,但是。。。我以前从没听说过这个

有人能告诉我-这是在什么地方记录的,还是


SQL Server 2012

以下是对该行为的描述摘录:

字符串值TRUE和FALSE可以转换为位值:TRUE 将转换为1,将FALSE转换为0


@约翰卡佩莱蒂,对,我希望字符串到位的转换可以使用
CAST
CONVERT
隐式或显式工作。
SELECT Code
FROM GovernmentThing
WHERE IsGovernment = 'True'