Sql Server中的資料型別和Mysql中的資料型別的對應關係
阿新 • • 發佈:2019-02-07
一、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 |