Sql Server中的数据类型和Mysql中的数据类型的对应关系(转)

时间:2023-11-09 19:13:08

Sql Server中的数据类型和Mysql中的数据类型的对应关系(转):https://blog.csdn.net/lilong329329/article/details/78899477

一、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