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数据类型的对应关系如图

IDSQL SERVERMySQLDescription
1bigintbigint
2binarybinary
3bittinyintSQL SERVER的bit类型,对于零,识别为False,非零值识别为True。
MySQL中没有指定的bool类型,一般都使用tinyint来代替
4charchar
5datedate
6datetimedatetime注意,mssql的保留到微秒(秒后小数点3位),而mysql仅保留到秒
7datetime2datetime注意,mssql的保留到微秒(秒后小数点7位),而mysql仅保留到秒
8datetimeoffsetdatetime注意,mssql的保留时区,这个需要程序自己转换
mssql的保留到微秒(秒后小数点7位),而mysql仅保留到秒
9decimaldecimal
10floatfloat
11intint
12moneyfloat默认转换为decimal(19,4)
13ncharcharSQL SERVER转MySQL按正常字节数转就可以
14ntexttext
15numericdecimal
16nvarcharvarchar
17realfloat
18smalldatetimedatetime
19smallintsmallint
20smallmoneyfloat默认转换为decimal(10,4)
21texttext
22timetime注意,mssql的保留到秒后小数点8位,而mysql仅保留到秒
23timestamptimestamp
24tinyinttinyint
25uniqueidentifiervarchar(40)对应mysql的UUID(),设置为文本类型即可。
26varbinaryvarbinary
27varcharvarchar
28xmltextmysql不支持xml,修改为text

一、SqlServer到MySql的数据类型的转变

编号

SqlServer

ToMySql

MySql

1

binary(50)

LONGBLOB

binary

2

bit

CHAR(1)

bit

3

char(10)

VARCHAR(10)

char

4

date

VARCHAR(10)

date

5

datetime

UNKNOWN

datetime

6

datetime2(7)      

VARCHAR(27)

datetime

7

datetimeoffset(7)

VARCHAR(34)

datetime

8

decimal(18, 0)

BIGINT

decimal

9

float

DOUBLE

float

10

nchar(10)

Varchar(10)

nvarchar(10)

11

numeric(18, 0)

BIGINT

real

12

nvarchar(50)

VARCHAR(50)

nvarchar(50)

13

nvarchar(MAX)

MEDIUMTEXT

nvarchar

14

real                         

DOUBLE

real

15

smallmoney

DOUBLE

decimal(10,4)

16

text

MEDIUMTEXT

text

17

time(7)  

VARCHAR(16)

time

18

timestamp

LONGBLOB

timestamp

19

varbinary(50)

LONGBLOB

varbinary

20

varbinary(MAX)

LONGBLOB

varbinary

21

varchar(MAX)

MEDIUMTEXT

varchar

22

uniqueidentifier

VARCHAR(36)

VARCHAR(36)

23

geography

LONGBLOB

LONGBLOB

24

geometry

LONGBLOB

LONGBLOB

25

hierarchyid

LONGBLOB

LONGBLOB

26

bigint

BIGINT

bigint

27

image

LONGBLOB

longblob

28

int

INT

int

29

money

DECIMAL(19,4)

decimal(19,4)

30

ntext

MEDIUMTEXT

mediumtext

31

smalldatetime

DATETIME

datetime

32

smallint

INT

int

33

sql_variant

TEXT

text

34

tinyint

INT

int

35

Varchar(50)

VARCHAR(50)

Varchar(50)

36

xml

MEDIUMTEXT

mediumtext

 二、MySql到Sqlserver的数据类型的转变

编号

MySql

ToSqlServer

SqlServer

1

DECIMAL/DECIMAL(10)

BIGINT

DECIMAL

2

BLOB

VARCHAR(100)

IMAGE

3

BLOB(10)

VARCHAR(100)

IMAGE

4

BINARY

UNKNOWN

BINARY

5

LONGBLOB

VARCHAR(100)  

IMAGE

6

MEDIUMBLOB

VARCHAR(100)  

IMAGE

7

TINYBLOB

VARCHAR(100)  

IMAGE

8

VARBINARY(10)

VARCHAR(100)  

VARBINARY

9

DATE

DATETIME

DATE

10

TIME

DATETIME

TIME

11

TIMESTAMP

DATETIME

TIMESTAMP

12

YEAR

DATETIME

INT

13

DECIMAL(10)

BIGINT

DECIMAL

14

DOUBLE

FLOAT(53)

REAL

15

REAL

FLOAT(53)

REAL

16

CHAR

VARCHAR

CHAR

17

NVARCHAR

VARCHAR

NVARCHAR

18

TEXT

VARCHAR

TEXT

19

TINYTEXT

VARCHAR

TEXT

20

BIT

VARCHAR

BIT

21

ENUM

VARCHAR

VARCHAR2

22

SET

VARCHAR

VARCHAR2

23

GEOMETRY

UNKNOWN

TEXT

24

GEOMETRYCOLLECTION

UNKNOWN

TEXT

25

MULTILINESTRING

UNKNOWN

TEXT

26

LINESTRING

UNKNOWN

TEXT

27

MULTIPOINT

UNKNOWN

TEXT

28

MULTIPOLYGON

UNKNOWN

TEXT

29

POINT

UNKNOWN

TEXT

30

POLYGON

UNKNOWN

TEXT

31

INT

INT

INT

32

VARCHAR(20)

VARCHAR(20)

VARCHAR(20)

33

DATETIME

DATETIME

DATETIME

34

DATETIME(6)

DATETIME

DATETIME

35

FLOAT

FLOAT

FLOAT

36

INT(8)

INT

INT

37

MEDIUMINT(10)

INT

INT

38

SMALLINT(2)

INT

INT

39

TINYINT(2)

INT

INT

40

LONGTEXT

TEXT

TEXT

41

MEDIUMTEXT

TEXT

TEXT

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值