Qt 支持的数据库系统的数据类型
Qt 支持的数据库系统推荐数据类型
下表列出了从 Qt 支持的数据库中提取数据时推荐使用的数据类型。请注意,Qt 中使用的类型并不一定能作为特定数据库系统的有效输入类型。 例如,double 类型可能完全适合作为特定数据库中浮点记录的输入,但未必适合作为该数据库输出的存储格式,因为在 C++ 中它将以 64 位精度存储。
IBM DB2 数据类型
| IBM DB2 数据类型 | SQL 类型描述 | 推荐输入(C++ 或 Qt 数据类型) |
|---|---|---|
| SMALLINT | 16 位有符号整数 | typedef qint16 |
| INTEGER | 32 位有符号整数 | typedef qint32 |
| BIGINT | 64 位带符号整数 | typedef qint64 |
| REAL | 32 位单精度浮点数 | typedef qreal |
| 双精度 | 64 位双精度浮点数 | 对于高精度双精度数,映射到QString ,否则映射到qreal |
| FLOAT | 64位双精度浮点数 | typedef qreal |
| CHAR | 固定长度、以空字符结尾的字符串 | 映射到QString |
| VARCHAR | 以空字符结尾的可变长度字符串 | 映射为QString |
| LONG VARCHAR | 非空终止的可变长度字符串 | 映射为QString |
| BLOB | 带有 4 字节字符串长度指示符、非空终止的可变长度二进制字符串 | 映射到QByteArray |
| CLOB | 字符大型字符串对象 | 映射到QString |
| DATE | 采用以下格式的以空字符结尾的字符串:yyyy-mm-dd | 映射到QDate |
| TIME | 格式为 hh.mm.ss 的以空字符结尾的字符串 | 映射为QTime |
| TIMESTAMP | 以下格式的以空字符结尾的字符串:yyyy-mm-dd-hh.mm.ss.nnnnnn | 映射到QDateTime |
Borland InterBase 数据类型
| Borland InterBase 数据类型 | SQL 类型描述 | 推荐输入(C++ 或 Qt 数据类型) |
|---|---|---|
| BOOLEAN | 布尔型 | bool |
| TINYINT | 8 位有符号整数 | typedef qint8 |
| SMALLINT | 16 位有符号整数 | typedef qint16 |
| INTEGER | 32 位有符号整数 | typedef qint32 |
| BIGINTLONG | 64 位有符号整数 | typedef qint64 |
| REAL FLOAT | 32 位浮点数 | typedef qreal |
| FLOAT | 64 位浮点数 | typedef qreal |
| DOUBLE | 64 位浮点数 | typedef qreal |
| 双精度 | 64 位双精度浮点数 | 对于高精度双精度浮点数,映射为QString ;否则映射为qreal |
| VARCHAR 字符串 | 字符串,Unicode | 映射到QString |
| CLOB | 大型字符串对象 | 映射到QString |
| DATE | 显示日期。格式:'yyyy-mm-dd' | 映射到QDate |
| TIME | 显示时间。格式为 24 小时制,格式为“hh:mm:ss” | 映射到QTime |
| TIMESTAMP | 显示时间戳。格式为“yyyy-mm-dd hh:mm:ss” | 映射到QDateTime |
MySQL 数据类型
| MySQL 数据类型 | SQL 类型描述 | 推荐输入(C++ 或 Qt 数据类型) |
|---|---|---|
| TINYINT | 8 位有符号整数 | typedef qint8 |
| TINYINT 无符号 | 8 位无符号整数 | typedef quint8 |
| SMALLINT | 16 位有符号整数 | typedef qint16 |
| SMALLINT 无符号 | 16 位无符号整数 | typedef quint16 |
| INT | 32 位有符号整数 | typedef qint32 |
| INT UNSIGNED | 32 位无符号整数 | typedef quint32 |
| BIGINT | 64 位有符号整数 | typedef qint64 |
| FLOAT | 32 位浮点数 | typedef qreal |
| DOUBLE | 64 位浮点数 | 对于高精度双精度浮点数,映射为QString ;否则为qreal |
| CHAR | 字符串 | 映射到QString |
| VARCHAR | 字符串 | 映射到QString |
| TINYTEXT | 字符串 | 映射到QString |
| TEXT | 字符串 | 映射到QString |
| MEDIUMTEXT | 字符串 | 映射到QString |
| LONGTEXT | 字符串 | 映射到QString |
| CLOB | 大字符串对象 | 映射到QString |
| 所有 BLOB 类型 | BLOB | 映射到QByteArray |
| DATE | 不含时间的日期 | 映射到QDate |
| DATETIME | 日期和时间 | 映射到QDateTime |
| TIMESTAMP | 日期和时间 | 映射到QDateTime |
| TIME | 时间 | 映射至QTime |
| YEAR | 年 (整数) | 映射到QDateTime |
| ENUM | 值集的枚举 | 映射到QString |
Oracle 调用接口数据类型
| Oracle 调用接口数据类型 | SQL 类型描述 | 推荐的输入(C++ 或 Qt 数据类型) |
|---|---|---|
| NUMBER | FLOAT、DOUBLE、PRECISIONc REAL | 对于高精度双精度数,映射为QString ;否则映射为qreal |
| NUMBER(38) | 整数 INT SMALLINT | typedef qint8/16/32/64 |
| NUMBER(p,s) | NUMERIC(p,s) DECIMAL(p,s)a | 映射到QString |
| NVARCHAR2(n) | 字符串 (NATIONAL CHARACTER VARYING(n) NATIONAL CHAR VARYING(n) NCHAR VARYING(n)) | 映射为QString |
| NCHAR(n) | 字符串 (NATIONAL CHARACTER(n) NATIONAL CHAR(n) NCHAR(n)) | 映射为QString |
| CHAR(n) | 字符串(CHARACTER(n)、CHAR(n)) | 映射为QString |
| CLOB | 大字符串对象 | 映射到QString |
| BLOB | 二进制大对象 | 映射到QByteArray |
| TIMESTAMP | 日期的年、月、日值,以及时间的小时、分钟、秒值 | 映射到QDateTime |
ODBC 数据类型
| ODBC 数据类型 | SQL 类型描述 | 推荐输入(C++ 或 Qt 数据类型) |
|---|---|---|
| BIT | 布尔型 | BOOL |
| TINYINT | 8 位整数 | typedef qint8 |
| SMALLINT | 16 位有符号整数 | typedef qint16 |
| INTEGER | 32 位有符号整数 | typedef qint32 |
| BIGINT | 64 位有符号整数 | typedef qint64 |
| REAL | 32 位单精度浮点数 | typedef qreal |
| FLOAT | 64 位双精度浮点数 | typedef qreal |
| DOUBLE | 64 位双精度浮点数 | 对于高精度双精度数,映射为QString ,否则为qreal |
| CHAR | 字符串 | 映射到QString |
| VARCHAR | 字符串 | 映射到QString |
| LONGVARCHAR | 字符串 | 映射到QString |
| CLOB | 大字符串对象 | 映射到QString |
| DATE | 字符串 | 映射到QDate |
| TIME | 字符时间,字符串 | 映射到QTime |
| TIMESTAMP | 字符时间、字符串 | 映射到QDateTime |
PostgreSQL 数据类型
| PostgreSQL 数据类型 | SQL 类型描述 | 推荐输入(C++ 或 Qt 数据类型) |
|---|---|---|
| BOOLEAN | 布尔型 | bool |
| SMALLINT | 16 位有符号整数 | typedef qint16 |
| INTEGER | 32 位有符号整数 | typedef qint32 |
| BIGINT | 64 位有符号整数 | typedef qint64 |
| REAL | 32 位可变精度浮点数 | typedef qreal |
| 双精度 | 64 位可变精度浮点数 | 对于高精度双精度数,映射为QString ;否则为qreal |
| 十进制可变 | 用户指定的精度,精确 | typedef qreal |
| 数值变量 | 用户指定的精度,精确 | typedef qreal |
| VARCHAR | 可变长度的字符串 | 映射到QString |
| CHARACTER | 固定长度的字符串 | 映射为QString |
| TEXT | 可变长度的字符串 | 映射到QString |
| CLOB | 大字符串对象 | 映射到QString |
| TIMESTAMP | 8字节,包含日期和时间 | 映射到QDateTime |
| TIMESTAMP | 8字节,包含日期和时间,并包含时区 | 映射到QDateTime |
| DATE | 4字节,仅包含日期 | 映射到QDate |
| TIME | 8 字节,仅限时间 00:00:00.00 - 23:59:59.99 | 映射至QTime |
| TIME | 12 字节,仅表示时间,含时区 00:00:00.00+12 | 映射到QDateTime |
QSQLITE SQLite 3 版数据类型
| QSQLITE SQLite 3.0 数据类型 | SQL 类型描述 | 推荐输入(C++ 或 Qt 数据类型) |
|---|---|---|
| NULL | NULL 值。 | NULL |
| INTEGER | 有符号整数,根据数值的绝对值大小,分别以 8、16、24、32、48 或 64 位存储。 | typedef qint8/16/32/64 |
| REAL | 64 位浮点数。 | typedef qreal |
| TEXT | 字符串(UTF-8、UTF-16BE 或 UTF-16-LE)。 | 映射到QString |
| CLOB | 大字符串对象 | 映射到QString |
| BLOB | 该值是一个数据 BLOB,其存储方式与输入时完全一致。 | 映射到QByteArray |
Mimer SQL 数据类型
| Mimer SQL 类型 | SQL 类型描述 | 推荐输入(C++ 或 Qt 数据类型) |
|---|---|---|
| SMALLINT | 16 位有符号整数 | typedef qint16 |
| INTEGER | 32 位有符号整数 | typedef qint32 |
| INTEGER(n) | 精度最高为 45 位的整数 | 映射到QString |
| BIGINT | 64 位有符号整数 | typedef qint64 |
| REAL | 32 位单精度 IEEE 浮点数 | typedef float |
| 双精度 | 64 位双精度 IEEE 浮点数 | 对于高精度双精度数值,映射到QString ,否则映射到qreal |
| FLOAT | 64 位双精度 IEEE 浮点数 | 对于高精度双精度数,映射为QString ;否则映射为qreal |
| FLOAT(n) | 精度高达 45 位的浮点数 | 映射为QString |
| DECIMAL(p,s) | 精度和标度均高达 45 位的十进制数 | 映射到QString |
| CHAR | 固定长度的 Latin-1 字符串(CHAR 或字符) | 映射为QString |
| VARCHAR | 可变长度的 Latin-1 字符串(VARCHAR 或 CHARACTER VARYING) | 映射为QString |
| NCHAR | 固定长度的 Unicode 字符串(NCHAR 或 NATIONAL CHARACTER) | 映射为QString |
| NVARCHAR | 可变长度的 Unicode 字符串(NVARCHAR 或 NATIONAL CHARACTER VARYING) | 映射为QString |
| BINARY | 固定长度的二进制数据 | 映射到QByteArray |
| VARBINARY | 可变长度二进制数据(VARBINARY 或 BINARY VARYING) | 映射为QByteArray |
| BLOB | 二进制大对象(BLOB 或 BINARY LARGE OBJECT) | 映射到QByteArray |
| CLOB | Latin-1 字符大对象(CLOB 或 CHARACTER LARGE OBJECT) | 映射为QString |
| NCLOB | Unicode 字符大对象 (NCLOB 或 NATIONAL CHARACTER LARGE OBJECT) | 映射为QString |
| DATE | 由年、月、日组成的日期 | 映射到QDate |
| TIME | 由小时、分钟、秒组成的时间,可选小数秒 | 映射到QTime |
| TIMESTAMP | 日期和时间,可选包含秒的分数部分 | 映射到QDateTime |
| BUILTIN.UUID | 全局唯一标识符 | 映射到QUuid |
| BOOLEAN | 布尔值 | bool |
| INTERVAL YEAR(7) | 年,格式为“±yyyyyyy”(最大精度) | 映射到QString |
| INTERVAL YEAR(7) TO MONTH | 年转月,格式为“±yyyyyyy-mm”(最大精度) | 映射到QString |
| INTERVAL MONTH(7) | 月份,格式为“±mmmmmmm”(最高精度) | 映射到QString |
| INTERVAL DAY(7) | 天,格式为“±ddddddd”(最大精度) | 映射到QString |
| INTERVAL DAY(7) TO HOUR | 天转为小时,格式为“±ddddddd hh”(最大精度) | 映射为QString |
| INTERVAL DAY(7) TO MINUTE | 天转为分钟,格式为“±ddddddd hh:mm”(最高精度) | 映射到QString |
| INTERVAL DAY(7) TO SECOND(9) | 天到秒,格式为“±ddddddd hh:mm:ss[.fffffffff]”(最大精度) | 映射到QString |
| INTERVAL HOUR(8) | 小时,格式为“±hhhhhhhh”(最大精度) | 映射为QString |
| INTERVAL HOUR(8) TO MINUTE | 小时转分钟,格式为“±hhhhhhhh:mm”(最大精度) | 映射为QString |
| INTERVAL HOUR(8) TO SECOND(9) | 小时到秒,格式为“±hhhhhhhh:mm:ss[.fffffffff]”(最大精度) | 映射到QString |
| INTERVAL MINUTE(10) | 分钟,格式为“±mmmmmmmmmm”(最大精度) | 映射为QString |
| INTERVAL MINUTE(10) TO SECOND(9) | 分钟转秒,格式为“±mmmmmmmmmm:ss[.fffffffff]”(最大精度) | 映射为QString |
| INTERVAL SECOND(12,9) | 秒,格式为“±ssssssssssss[.fffffffff]”(最大精度) | 映射到QString |
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.