更新时间:2024-11-29 GMT+08:00

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。