一、SQL SERVER与MySQL数据存储的差异
1、SQL SERVER中的datetime,保留到微秒(秒后小数点3位),而mysql仅保留到秒,转换后是否会影响业务,如果影响,需要新增一个字段专门来存储微秒或者毫秒,虽然mysql中没有时间数据类型的精度到达微秒或者毫秒,但是mysql提供对微秒的相关处理函数microsecond、extract跟date_format
2、MySQL使用tinyint代替SQL SERVER的bit
3、自增处理,mysql的自增步长跟增量值是整个实例统一的,不能每个表格动态修改,所以这里在转化的过程中,为auto_increment,根据实例的设置来处理
二、SQL SERVER与MySQL数据类型的对应关系如图
ID SQL SERVER MySQL Description 1 bigint bigint 2 binary binary 3 bit tinyint SQL SERVER的bit类型,对于零,识别为False,非零值识别为True。 MySQL中没有指定的bool类型,一般都使用tinyint来代替 4 char char 5 date date 6 datetime datetime 注意,mssql的保留到微秒(秒后小数点3位),而mysql仅保留到秒 7 datetime2 datetime 注意,mssql的保留到微秒(秒后小数点7位),而mysql仅保留到秒 8 datetimeoffset datetime 注意,mssql的保留时区,这个需要程序自己转换 mssql的保留到微秒(秒后小数点7位),而mysql仅保留到秒 9 decimal decimal 10 float float 11 int int 12 money float 默认转换为decimal(19,4) 13 nchar char SQL SERVER转MySQL按正常字节数转就可以 14 ntext text 15 numeric decimal 16 nvarchar varchar 17 real float 18 smalldatetime datetime 19 smallint smallint 20 smallmoney float 默认转换为decimal(10,4) 21 text text 22 time time 注意,mssql的保留到秒后小数点8位,而mysql仅保留到秒 23 timestamp timestamp 24 tinyint tinyint 25 uniqueidentifier varchar(40) 对应mysql的UUID(),设置为文本类型即可。 26 varbinary varbinary 27 varchar varchar 28 xml text mysql不支持xml,修改为text