Abaixo temos uma tabela com tipos de dados equivalentes do SQL e C#.
Com valores máximos e mínimos suportados por cada tipo.
Espero que as informações sejam úteis para descobrir que tipo de dados deverá ser utilizado quando se trabalha com dados vindos do banco de dados. Ou então o tipo de dado mais adequado ou correto a ser utilizado.
BIGINT
SqlInt64 |
long (Int64)
System.Int64 |
9,223,372,036,854,775,807 |
−9,223,372,036,854,775,808 |
8 bytes |
INT
SqlInt32 |
int (Int32)
System.Int32 |
2,147,483,647 |
-2,147,483,648 |
4 bytes |
SMALLINT
SqlInt16 |
Short (Int16)
System.Int16 |
32,767 |
-32,768 |
2 bytes |
TINYINT
SqlByte |
byte
System.Byte |
255 |
0 |
1 byte |
BIT
SqlBoolean |
bool (Boolean)
System.Boolean |
1 |
0 |
1 byte |
DATETIME
SqlDateTime |
DateTime
System.DateTime |
(C#) 31/12/9999 23:59:59
(SQL) 31/12/9999 23:59:59 |
(C#) 1/1/0001 00:00:00
(SQL) 1/1/1753 00:00:00 |
8 bytes |
DATETIME2*
System.DateTime |
DateTime
System.DateTime |
31/12/9999 23:59:59 |
1/1/0001 00:00:00 |
|
SMALLDATETIME
SqlDateTime |
|
06/06/2079 23:59:00 |
01/01/1900 00:00:00 |
4 bytes |
DATE*
|
|
0001-01-01 |
9999-12-31 |
|
TIME(7)*
|
|
23:59:59.9999999 |
00:00:00.0000000 |
5 bytes |
REAL
SqlSingle |
Float (Single)
System.Single |
3.402823E+38 |
-3.402823E+38 |
4 bytes |
FLOAT
SqlDouble |
Double
System.Double |
(C#) 1.79769313486232E+308
(SQL) 1.79E + 308 |
(C#) -1.79769313486232E+308
(SQL) -1.79E + 308 |
8 bytes
4-8 bytes |
DECIMAL / NUMERIC
SqlDecimal |
Decimal
System.Decimal |
(C#) 79228162514264337593543950335
(SQL) 10^38–1 |
(C#) -79228162514264337593543950335
(SQL) -10^38+1 |
16 bytes /
5-20 bytes |
MONEY
SqlMoney |
Decimal
System.Decimal |
2^63-1 / 10000 |
-2^63 / 10000 |
8 bytes |
SMALLMONEY
SqlMoney |
Decimal
System.Decimal |
+214,748.3647 |
-214,748.3648 |
4 bytes |
TEXT
SqlString |
|
2,147,483,647 |
0 |
número de chars |
NTEXT
SqlString |
|
1,073,741,823 |
0 |
2 vezes o número de chars contidos |
CHAR
SqlString |
|
8.000 |
0 |
número de chars |
NCHAR
SqlString |
|
4.000 |
0 |
2 vezes o número de chars + 2 bytes |
VARCHAR
SqlString |
|
8.000 |
0 |
número de chars contidos |
NVARCHAR
SqlString |
|
4.000 |
0 |
2 vezes o número de chars contidos |
VARCHAR(MAX)**
SqlString |
|
2147483647 |
0 |
número de chars contidos |
NVARCHAR(MAX)**
SqlString |
|
2147483647 |
0 |
2 vezes o número de chars contidos |
UNIQUEIDENTIFIER
SqlGuid |
Guid
System.Guid |
|
|
|
* Suportado apenas no SQL 2008.
** Suportado apenas no SQL 2008 e 2005.