| 類型 | 範圍 | 儲存 | 適用場景 |
|---|---|---|---|
| bit | 0, 1, NULL | 1 bit (8欄=1 byte) | 布林旗標 |
| tinyint | 0 ~ 255 | 1 byte | 狀態碼、小範圍計數 |
| smallint | -32,768 ~ 32,767 | 2 bytes | 小整數 |
| int | -2,147,483,648 ~ 2,147,483,647 | 4 bytes | 標準整數、主鍵 |
| bigint | -2^63 ~ 2^63-1 | 8 bytes | 大範圍識別碼 |
| decimal(p,s) / numeric(p,s) | -10^38+1 ~ 10^38-1 | 5~17 bytes | 財務金額、精確計算 |
| smallmoney | -214,748.3648 ~ 214,748.3647 | 4 bytes | 小額貨幣 |
| money | -922,337,203,685,477.5808 ~ 922,337,203,685,477.5807 | 8 bytes | 貨幣金額 |
decimal 參數說明:
p (precision):總位數 1~38,預設 18s (scale):小數位數 0~p,預設 0| 類型 | 範圍 | 儲存 | 精度 |
|---|---|---|---|
| float(n) | -1.79E+308 ~ 1.79E+308 | 4/8 bytes | n=1~24: 7 位數 (4B), n=25~53: 15 位數 (8B) |
| real | -3.40E+38 ~ 3.40E+38 | 4 bytes | 7 位數精度 |
⚠ 避免用於精確比較或財務計算。
| 類型 | 範圍 | 精度 | 儲存 | 備註 |
|---|---|---|---|---|
| datetime | 1753-01-01 ~ 9999-12-31 | 3.33 ms | 8 bytes | 舊版相容 |
| smalldatetime | 1900-01-01 ~ 2079-06-06 | 1 分鐘 | 4 bytes | 舊版相容 |
| date | 0001-01-01 ~ 9999-12-31 | 1 天 | 3 bytes | 僅日期,推薦新開發使用 |
| time(n) | 00:00:00 ~ 23:59:59.9999999 | 100ns | 3~5 bytes | 僅時間 |
| datetime2(n) | 0001-01-01 ~ 9999-12-31 | 100ns | 6~8 bytes | 高精度,推薦新開發使用 |
| datetimeoffset(n) | 含時區 | 100ns | 8~10 bytes | 跨時區應用 |
| 類型 | 最大長度 | 儲存 | 適用場景 |
|---|---|---|---|
| char(n) | 8,000 | n bytes | 固定長度代碼 (ISO 代碼等) |
| varchar(n) | 8,000 | 實際長度+2 bytes | 可變長度文字 |
| varchar(max) | 2 GB | 行外儲存 | 大型文本,取代 text |
| nchar(n) | 4,000 | 2n bytes | 固定長度 Unicode |
| nvarchar(n) | 4,000 | 2×實際長度+2 bytes | 可變長度 Unicode |
| nvarchar(max) | 2 GB | 行外儲存 | 大型 Unicode 文本,取代 ntext |
NEWID()/NEWSEQUENTIALID()