Microsoft SQL Server->MySQL
数据类型(Microsoft SQL Server) |
数据类型(MySQL) |
是否支持映射 |
---|---|---|
TINYINT |
TINYINT |
支持,RDS for MySQL使用无符号 |
SMALLINT |
SMALLINT |
支持 |
INT |
INT |
支持 |
BIGINT |
BIGINT |
支持 |
DECIMAL |
DECIMAL |
支持 |
NUMERIC |
DECIMAL |
支持 |
FLOAT |
FLOAT |
部分支持,可能会精度丢失,不建议作为主键,会造成数据不一致。 |
REAL |
DOUBLE |
支持 |
SMALLMONEY |
DECIMAL(10,4) |
支持,会丢失货币符号。 |
MONEY |
DECIMAL(19,4) |
支持,会丢失货币符号。 |
BIT |
BIT |
支持 |
DATE |
DATE |
支持,不建议作为主键,可能会导致数据不一致。 |
SMALLDATETIME |
DATETIME |
支持 |
DATETIME2 |
DATETIME |
支持,可能会精度丢失。 |
DATETIME |
DATETIME |
支持 |
DATETIMEOFFSET |
TIMESTAMP |
部分兼容,会丢失时区。 |
TIME |
TIME |
支持 |
XML |
LONGTEXT |
支持 |
CHAR |
CHAR/VARCHAR |
支持,根据M的大小转换成对应的类型,小于256是CHAR,大于等于256 是VARCHAR。 |
VARCHAR |
VARCHAR/LONGTEXT |
支持,根据M的大小转换成对应的类型, M为数字是VARCHAR,M为max时是LONGTEXT。 |
BINARY |
BINARY/BLOB |
支持,根据M的大小转换成对应的类型,小于256是BINARY,大于等于256 是BLOB。 |
VARBINARY |
VARBINARY/LONG BLOB |
支持,根据M的大小转换成对应的类型, M为数字是VARBINARY,M为max时是LONGBLOB。 |
IMAGE |
LONGBLOB |
支持 |
NTEXT |
LONGTEXT |
支持 |
TEXT |
LONGTEXT |
支持 |
NCHAR |
CHAR/VARCHAR |
支持,根据M的大小转换成对应的类型,小于256是CHAR,大于等于256 是VARCHAR。 |
NVARCHAR |
VARCHAR/ LONGTEXT |
支持,根据M的大小转换成对应的类型, M为数字是VARCHAR,M为max时是LONGTEXT。 |
UNIQUEIDENTIFIER |
CHAR(36) |
支持 |
TIMESTAMP |
BINARY(8) |
支持 |
- Microsoft SQL Server数据库的datetimeoffset转成MySQL数据库的timestamp会丢失时区。
Microsoft SQL Server的datetimeoffset类型范围为0001-01-01 00:00:00.0000000到9999-12-31 23:59:59.9999999(以 UTC 时间表示),MySQL的timestamp类型范围为1970-01-01 00:00:01.000000到2038-01-19 03:14:07.999999,Microsoft SQL Server数据库的日期类型都会比MySQL数据库的日期类型的范围宽。当超出范围时,DRS服务默认会报错处理。
- Microsoft SQL Server数据库的datetime2转成MySQL数据库映射关系datetime,最大值会变小。
Microsoft SQL Server数据库的最大值是9999-12-31 23:59:59.999999,而MySQL数据库的最大值是 9999-12-31 23:59:59.499999,DRS会统一处理成 9999-12-31 23:59:59。