java - 从具有 BIT 列的 HSQLDB 表中进行选择

标签 java hsqldb

我有一个表,其中有一列数据类型为bit

> CREATE MEMORY TABLE Dummy (name varchar(10), flag bit)
> INSERT INTO Dummy VALUES ('foo', 1)
> INSERT INTO Dummy VALUES ('bar', 0)
> INSERT INTO Dummy VALUES ('foo2', true)
> INSERT INTO Dummy VALUES ('bar2', false)

> select name from Dummy where flag=1

foo2

> select name from Dummy where flag=true

foo2

为什么我没有得到foo01 位如何转换为 boolean 值?看来两者都是假的,我无法区分它们。

(顺便说一下,这个表是基于我在 Sybase 中的表。位 1 和 0 正确地转换为 true 和 false。)

最佳答案

这与您期望的 HSQLDB 2.2.5 一样,返回两行。

HSQLDB 2.x直接支持BIT类型并存储位值。可以存储值B'0'和B'1'。它将 TRUE 和 FALSE 分别转换为 1 和 0。整数值 0 和 1 也被转换为位。

一旦定义了列,HSQLDB 1.8 就会将 BIT 转换为 BOOLEAN。从整数转换可能并不总是有效。

关于java - 从具有 BIT 列的 HSQLDB 表中进行选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7581985/

相关文章:

java - Docker 容器中的 OpenJDK 1.8.0 与/etc/timezone 和主机的时区不同

java - JSP bean 是否可以进行依赖注入(inject)?

java - 在没有Spring的情况下使用SessionFactory?

java - 使用区域设置设置自定义货币符号

java - 打印多行文本文档

java - 调试时检查内存 hsqldb

java - java代码备份和恢复Hsqldb数据库

java.sql.SQLSyntaxErrorException : unexpected token: (

mysql - 如何编写一个同时适用于 HSQLDB 和 MySQL 的查询,以在 WHERE 子句中向日期添加天数?

mysql - MySQL 和 PostgreSQL 中的 MERGE INTO 语句