本文介绍云原生数据仓库AnalyticDB MySQL版(简称ADB,原分析型数据库MySQL版)支持哪些数据类型以及与MySQL数据类型的差异对比。

ADB支持的数据类型

数据类型 说明
boolean布尔类型 值只能是01,存储字节数1比特位。
  • 取值0的逻辑意义为假。
  • 取值1的逻辑意义为真。
tinyint微整数类型 取值范围-128~127,存储字节数1字节。
smallint小整数类型 取值范围-32768~32767,存储字节数2字节。
intinteger整数类型 取值范围-2147483648~2147483647,存储字节数4字节。
bigint大整数类型 取值范围-9223372036854775808~9223372036854775807,存储字节数8字节。
float单精度浮点数 取值范围-3.402823466E+38~-1.175494351E-38, 0, 1.175494351E-38~3.402823466E+38,IEEE标准,存储字节数4字节。
double双精度浮点数 取值范围-1.7976931348623157E+308~-2.2250738585072014E-308, 0, 2.2250738585072014E-308~1.7976931348623157E+308,IEEE标准,存储字节数8字节。
decimal(m,d) m是数值的最大精度,取值范围为1~1000d是小数点右侧数字的位数,要求dm
varchar变长字符串类型 存储字节数最大为16MB,使用时无需指定存储长度。
date日期类型 取值范围'0001-01-01'~'9999-12-31',支持的数据格式为'YYYY-MM-DD',存储字节数为4字节。
time时间类型 取值范围'00:00:00'~'23:59:59',支持的数据格式为'HH:MM:SS',存储字节数为8字节。
datetime时间戳类型 取值范围'0001-01-01 00:00:00.000'UTC~'9999-12-31 23:59:59.999'UTC,支持的数据格式为'YYYY-MM-DD HH:MM:SS',存储字节数为8字节。
说明 datetime默认UTC时间,且不支持可更改。
timestamp时间戳类型 时间戳类型,取值范围'0001-01-01 00:00:00.000'UTC~'9999-12-31 23:59:59.999'UTC,支持的数据格式为'YYYY-MM-DD HH:MM:SS',存储字节数为4字节。
说明 timestamp默认为系统时区,可以在SESSION中设置时区。
json 请参见JSON
multivalue 多值子列类型 支持1,2,31:a;2:b等多字段的多值列,详情请参见多值列

与MySQL数据类型对比

ADB MySQL 差异
boolean boolboolean 一致。
tinyint tinyint 一致。
smallint smallint 一致。
intinteger intinteger 一致。
bigint bigint 一致。
float float[(m,d)] 一致。
double double[(m,d)] 一致。
decimal decimal ADB支持的最大精度为1000,MySQL支持的最大精度为65
varchar varchar ADB中的varchar对应MySQL中的charvarchartextmediumtext或者longtext
date date MySQL支持0000-00-00;在ADB中写入0000-00-00时,系统自动将其转化为null
time time ADB精确到毫秒,MySQL支持自定义精度。
datetime datetime MySQL支持0000-00-00 00:00:00;在ADB中写入0000-00-00 00:00:00时,系统自动将其转化为null

ADB精确到毫秒,MySQL支持自定义精度。

timestamp timestamp ADB精确到毫秒,MySQL支持自定义精度。