基础数据类型

本文介绍云原生数据仓库 AnalyticDB MySQL 版支持哪些数据类型以及与MySQL数据类型的差异对比。

AnalyticDB for MySQL支持的基础数据类型

类型

数据类型

说明

与MySQL数据类型差异

数值类型

boolean布尔类型

值只能是01,存储字节数1比特位。

  • 取值0的逻辑意义为假。

  • 取值1的逻辑意义为真。

一致。

tinyint微整数类型

取值范围-128~127,存储字节数1字节。

一致。

smallint小整数类型

取值范围-32768~32767,存储字节数2字节。

一致。

intinteger整数类型

取值范围-2147483648~2147483647,存储字节数4字节。

AnalyticDB for MySQL中的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

  • AnalyticDB for MySQL支持的最大精度为1000

字符类型

varchar变长字符串类型

存储字节数最大为16MB,使用时无需指定存储长度。

AnalyticDB for MySQL中的varchar对应MySQL中的charvarchartextmediumtext或者longtext

binary二进制字符串类型

存储字符长度。

AnalyticDB for MySQL中的binary对应MySQL中的binaryvarbinary或者blob

时间类型

date日期类型

取值范围'0001-01-01'~'9999-12-31',支持的数据格式为'YYYY-MM-DD',存储字节数为4字节。

  • MySQL支持0000-00-00

  • AnalyticDB for MySQL对时间类型的数值会进行合法性校验。如果开启参数ILLEGAL_DATE_CONVERT_TO_NULL_ENABLE=true,在不合理的数值写入时,例如0000-00-00AnalyticDB for MySQL会自动将其转化为NULL。请确保写入的日期和时间有意义。

time时间类型

取值范围'00:00:00'~'23:59:59',支持的数据格式为'HH:MM:SS',存储字节数为8字节。

  • MySQL支持自定义精度。

  • AnalyticDB for MySQL支持的精度为毫秒,即小数点后三位。

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,支持自定义精度。

  • AnalyticDB for MySQL对时间类型的数值会进行合法性校验。如果开启参数ILLEGAL_DATE_CONVERT_TO_NULL_ENABLE=true,在不合理的数值写入时,例如0000-00-00,ADB会自动将其转化为NULL。请确保写入的日期和时间有意义。

timestamp时间戳类型

时间戳类型,取值范围'0100-01-01 00:00:00.000'UTC~'9999-12-31 23:59:59.999'UTC,支持的数据格式为'YYYY-MM-DD HH:MM:SS',存储字节数为8字节。

说明

timestamp默认为系统时区,可以在SESSION中设置时区。

  • MySQL支持自定义精度。

  • AnalyticDB for MySQL支持的精度为毫秒,即小数点后三位。

空间类型

point

地理坐标,由坐标经度x和纬度y组成。

一致。

AnalyticDB for MySQL支持的复杂数据类型

AnalyticDB for MySQL不支持的数据类型

云原生数据仓库 AnalyticDB MySQL 版不支持的数据类型,请参见不支持的数据类型及运算符