关于sql server:使用位数据类型将真/假存储到sql数据库是否实用?

is it practical to use bit data type to store true/false into sql database?

使用位数据类型将真/假值存储到SQL数据库中是否可行?我读到有些人使用tinyint(1),但我不知道为什么?,它在性能上是否不同,更实用?它们在转换为布尔类型时有问题吗?


实际上,我假设您的意思是比使用另一种方法存储布尔值更好。SQL Server隐式地将布尔值转换为bit类型,因此除了其他好处(主要是使用bit类型存储为1字节,非常有效),使用它是有意义的,因为您为自己做的工作更少,不需要默认值或约束。但是,tinyint(也存储为1字节)可以自然地存储最多255个值,并且在尝试从应用程序层隐式转换布尔值时,可能会遇到转换错误。

tl;dr总是使用适当的类型。bit类型适用于布尔值,因此没有理由不使用它。