您的位置:首页 > 数据库 > 数据库管理

SQL SERVER与MySQL数据类型的对应关系

更多 2017/6/18 来源:数据库管理利来国际娱乐官网浏览量:1116
利来国际娱乐官网标签: SQL SERVER MySQL
本文导读:在系统开发中,有时需要将SQL SERVER数据库数据移到MySQL数据库中,或者将MySQL数据移到SQL SERVER中,由于这两种数据库的数据类型有些不同,在移库的时候,需要特别注意,下面介绍这两种数据库的数据类型的对应关系。

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

 

收藏
105
很赞
468
博聚网