sqlserver数据库中的字段是bit类型的,数据库中查询查询出来的值为啥是true,o查询不出来

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqlserver数据库中的字段是bit类型的,数据库中查询查询出来的值为啥是true,o查询不出来相关的知识,希望对你有一定的参考价值。

sqlserver数据库中的字段是bit类型的,数据库中查询出来是0或者1,为什么java项目中mybatis查询出来的值会是true?而且0的数据都没查出来,请大神教教怎么改进,急等

参考技术A 观念:

一、在编程的领域,true 跟 1 或「真」同义;false 跟 0 或「假」同义。数据库查出结果为 0 或 1,是数据库本身的效果。

二、数据库的 bit 资料型别本身就是存放布林值,不是「真」就是「假」,在编程语言里的相应型别通常也会是 true 或 false。不过有些比较不严谨的编程语言, true 或 false 一般会用 1 或 0 来代表。

三、改进的方式,就是瞭解上述观念之後,找出你编程语言中等效的比较方式即可。也就是你要知道数据库的 true 或 false,跟你所用编程语言的哪种资料型别等效。

四、从你提供的线索「mybatis 查出来的值是 true」,那很显然两边都可以用 true 或 false 来当做判断的依据。追问

主要是,比如我查的这条sql语句,查出来的这个字段的值有1和0同事存在的话,0的那些数据都没查出来,只查出来1的值,当然出来的效果就是开始提问的true了,如果不管是0还是1的数据都没查出来还能好办,可是不知道什么原因,数据库查询出来的都没有任何问题,项目上只查出true的值,false的数据查不出来,好忧伤,麻烦大神再帮帮忙解答,谢谢啦。

追答

首先要知道:资料型别为 bit 的,不可能出现「同一笔资料的同一个字段同时在存在两种结果」的情况。

你的叙述,看起只是单纯的资料筛选和 java 端的判断不匹配。

建议:

1、把 java 端的代码贴出来
2、附上你的资料结构
3、数据库端的 sql 语句也贴出来
4、说明你想要达成什麼效果

本回答被提问者采纳

sqlserver bit 让他默认false

使用bit类型吗?
我就是用true 或者 false

在SQL中数据类型bit只有两个值0和1,可以在程序代码中转换成bool类型。设置默认值为:false,在设计表中,选中该字段中的默认值,设置为0后,在程序中新建一个布尔类型变量,bool s进行存储就可以了。在.net中可以用label进行类型bit的存储,更容易进行程序的判断与使用。 参考技术A 没错,就是用bit类型。
0表示false,1表示true.
如果你是在.net 平台上开发应用程序,.net可以自动将sql server 的bit类型转换成bool 类型。
参考技术B 使用bit是可以的,也有使用其他方式的,比如char(1)。

以上是关于sqlserver数据库中的字段是bit类型的,数据库中查询查询出来的值为啥是true,o查询不出来的主要内容,如果未能解决你的问题,请参考以下文章

sqlserver的bit类型在oracle中可以用啥类型表示

sql server怎么定义数据类型

SQL Server 2012 如何将列的数据类型从位更改为日期字段?

更改SqlServer datatime类型字段中的年份

C#的EF中的字段类型布尔型,mysql数据库里是bit类型,提交识别不了该字段赋的true和false,为啥呢?

sqlserver2005中的字段类型image对应java的pojo类里的啥类型