因项目需要适配国产数据库,网上资料太少,自己整理了一下几个国产数据类常用数据类型,后续会记录一些适配遇到的问题,方便日后查看,也希望给同样遭遇的小伙伴一点点参考
1 Gbase8s数据库
分类 | 数据类型 | 说明 | 范围 |
数值型 | INT/INTEGER | 整数 | -2,147,483,647 至 2,147,483,647 |
DECIMAL(p,s) | 存储实数的定点小数值 | 在小数部分中最多 20 位有效数字,或在小数点的左边最多 32 位有效数字。 | |
NUMERIC(p,s) | DECIMAL(p,s) 的符合 ANSI 的同义词 | p最大精度是38位(十进制) | |
FLOAT | 双精度浮点数值 | 存储最多带有 16 位有效数字的双精度浮点数值 | |
SERIAL | 存储数据库服务器生成的 4 字节正整数 | 从 1 至 2,147,483,647 默认从1开始,可以设置初始值serial(n) | |
MONEY(p,s) | 定点货币值 | 数据自带货币符号 | |
时间类型 | DATE | YYYY-MM-DD | 1 年 1 月 1 日直至 9999 年 12 月 31 日 |
DATETIME | (年、月、日)和每日时间(小时、分、秒和几分之一秒) | 1 年至 9999 年 | |
字符串类型 | CHAR | 定长字符串 | 0-32767字节 |
NCHAR | 定长度符串 | 0-32,767字节 | |
VARCHAR | 变长字符串 | 0-255 字节 | |
LVARCHAR | 可变长字符串 | 0-32,739 字节 | |
NVARCHAR | 变长字符串 | 0-255字节 | |
大对象 | TEXT | 文本数据 | 0-2^31字节 |
BYTE | 任何数字化数据 | 0-2^31字节 | |
BLOB | 二进制数据 | 4 TB(4*2^40字节) | |
CLOB | 文本数据 | 4 TB(4*2^40 字节) | |
其他 | BOOLEAN | 可存储 true、false 或 NULL 值的内建的 opaque 数据类型 |
|
2 Oscar(神通)数据库
分类 | 数据类型 | 说明 | 范围 |
数值型 | TINYINT | 固定精度 | -128 到 127
|
INT INTEGER INT4 | 固定精度 | -2^31 到 2^31-1 | |
NUMERIC | 固定精度和小数位的数字数据 | 最大精度 p 为 1000,s 则可在 0-p 之 间变化 | |
DOUBLE PRECISION
| 浮点精度数字
| 2.22507385850720e-308 到 1.79769313486231e+308]
| |
FLOAT(n), 1<=n<=24 | 指定低精度浮点精度
| 15 位十进制数字精度
| |
FLOAT 24<=n<=53 | 指定低精度浮点精度 |
| |
DECIMAL | 固定精度和小数位的 数字数据 | 最大精度 p 为 1000,s 则可在 0-p 之 间变化
| |
SERIAL | 自增整数 | 1 到 +2147483647
| |
时间类型 | DATE | 日期 | 4714-11-24 BC -9999-12-31AD
|
TIME | 时间 | 00:00:00 -23:59:59.999999
| |
TIMESTAMP | 时间戳 | 4714-11-24 00:00:00 BC -9999-12-31 23:59:59.999999 AD
| |
字符串类型 | CHAR | 定长字符串 | 0-8000字节 |
VARCHAR | 变长字符串 | 0-8000 字节 | |
TEXT | 可变长度的字符数据
| 0-8000 字节 | |
大对象 | BLOB | 大数据量二进制数据 | 0-4G |
CLOB | 大数据量字符串数据 | 0-4G | |
二进制字符串 | BINARY(n)
| 定长的二进制字串
| 最大长度为8000 字节
|
| VARBINARY(n)
| 变长的二进制字串
| 最大长度为 8000 字节
|
其他 | BOOLEAN BOOL | 布尔值 | TRUE(T),FALSE(F) |
3 GaussDb100(华为高斯)数据库
分类 | 数据类型 | 说明 | 范围 |
数值型 | INTEGER | 存储32位有符号整数
| -2^31 ~ 2^31 -1
|
BIGINT
| 存储64位有符号整数
| -2^63 ~ 2^63 -1
| |
DOUBLE
| 存储64位的双精度浮点数 | [-1.79E+308, +1.79E+308]
| |
FLOAT | 单精度浮点数 | [-1.79E+308, +1.79E+308]
| |
DECIMAL/NUMBER
| 存储高精度浮点数 | (-1.0E128, 1.0E128)
| |
时间类型 | DATE/DATETIME
| YYYY-MM-DD HH24:MI:SS | [0001-01-01 00:00:00,9999-12-31 23:59:59]
|
TIMESTAMP | YYYY-MM-DD HH24:MI:SS.FF6 | [0001-01-01 00:00:00.000000,9999-12-31 23:59:59.999999]
| |
字符串类型 | CHAR | 定长字符串 | 0-8000 |
NCHAR | 用于存储定长字符串 | 0-8000 | |
CLOB | 存储大对象变长字符串 | 0-4G | |
VARCHAR | 变长字符串 | 0-8000 字节 | |
NVARCHAR | 存储大对象变长字符串 | 0-8000 字节 | |
二进制类型 | BLOB | 存储变长大对象二进制数据
| 0-4G |
BINARY | 存储定长的二进制数据
| 0-8000字节 | |
VARBINARY | 存储变长的二进制数据 | 0-8000字节 | |
其他 | BOOLEAN BOOL | 布尔值 | TRUE(T),FALSE(F)
|
4 DM数据库
分类 | 数据类型 | 说明 | 范围 |
数值型 | INTEGER | 存储32位有符号整数
| -2^31 ~ 2^31 -1
|
DECIMAL/DEC
| 与 NUMERIC 相似。
|
| |
DOUBLE PRECISION
| 存储64位的双精度浮点数 | 二进制精度为 53,十进制精度为 15取值范围-1.7E + 308 ~ 1.7E + 308 | |
FLOAT | 带二进制精度的浮点数
| -1.7E + 308 ~ 1.7E + 308 | |
NUMBER/NUMERIC | 存储高精度浮点数 | 精度范围是 1 至 38,标度定义了小数点右边的数字位数,默认是 16
精度,则默认是 16
| |
时间类型 | DATE | 日期 | -4712-01-01-9999-12-31
|
TIME
| 时间 | 00:00:00.000000-23:59:59.999999
| |
TIMESTAMP/DATETIME | YYYY-MM-DD HH24:MI:SS.FF6 | -4712-01-0100:00:00.000000- 9999-12-31 23:59:59.999999 | |
字符串类型 | CHAR | 定长字符串 | 最大长度由数据库页面大小决定 |
CLOB | 存储大对象变长字符串 | 0-2G-1 | |
VARCHAR | 变长字符串 | 最大长度由数据库页面大小决定 | |
TEXT/LONGVARCHAR | 变长字符串类型 | 0-2G-1 | |
二进制类型 | BLOB | 存储变长大对象二进制数据
| 0-2G-1 |
BINARY | 存储定长的二进制数据
| 最大长度由数据库页面大小决定
| |
VARBINARY | 存储变长的二进制数据 | 最大长度由数据库页面大小决定
| |
其他 | BOOLEAN BOOL | 布尔值 | 返回值为 0 或 1 |