SQL SERVER与MySQL数据类型的对应关系
SQL SERVER与MySQL数据类型的对应关系一、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 |