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

ADB支持的数据类型

类型 数据类型 说明 与MySQL数据类型差异
数值类型 boolean布尔类型 值只能是01,存储字节数1比特位。
  • 取值0的逻辑意义为假。
  • 取值1的逻辑意义为真。
一致。
tinyint微整数类型 取值范围-128~127,存储字节数1字节。 一致。
smallint小整数类型 取值范围-32768~32767,存储字节数2字节。 一致。
intinteger整数类型 取值范围-2147483648~2147483647,存储字节数4字节。 ADB中的int对应MySQL中的int或者mediumint
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)numeric m是数值的最大精度,取值范围为1~1000d是小数点右侧数字的位数,要求dm
  • MySQL支持的最大精度为65
  • ADB支持的最大精度为1000
字符类型 varchar变长字符串类型 存储字节数最大为16MB,使用时无需指定存储长度。 ADB中的varchar对应MySQL中的charvarchartextmediumtext或者longtext
binary二进制字符串类型 存储字符长度 ADB中的binary对应MySQL中的binaryvarbinary或者blob
时间类型 date日期类型 取值范围'0001-01-01'~'9999-12-31',支持的数据格式为'YYYY-MM-DD',存储字节数为4字节。
  • MySQL支持0000-00-00
  • ADB对时间类型的数值会进行合法性校验。如果开启参数ILLEGAL_DATE_CONVERT_TO_NULL_ENABLE=true,在不合理的数值写入时,例如0000-00-00,ADB会自动将其转化为NULL。请确保写入的日期和时间有意义。
time时间类型 取值范围'00:00:00'~'23:59:59',支持的数据格式为'HH:MM:SS',存储字节数为8字节。
  • MySQL支持自定义精度。
  • ADB支持的精确为毫秒,即小数点后三位。
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时间,且不支持可更改。
  • MySQL支持0000-00-00,支持自定义精度。
  • ADB对时间类型的数值会进行合法性校验。如果开启参数ILLEGAL_DATE_CONVERT_TO_NULL_ENABLE=true,在不合理的数值写入时,例如0000-00-00,ADB会自动将其转化为NULL。请确保写入的日期和时间有意义。
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中设置时区。
  • MySQL支持自定义精度。
  • ADB支持的精确为毫秒,即小数点后三位。
空间类型 point 地理坐标 一致
json 请参见JSON 一致