String Data Type
Data type Name Explain Storage Size
Non-Unicode
char(n) Fixed-length string with Maximum 8,000 characters 1 byte
varchar(n) Var i ab le - l eng th s t r i ng Maximum
wi th 8,000 characters 1 byte
varchar(max) Variable-length string with Maximum 1,073,741,824 characters
Text Variable-length string with Maximum 2GB of text data or a maximum
length of 2^31 - 1 characters
Unicode
nchar(n) Fixed-length Unicode data with Maximum 4,000 characters 2 byte
nvarchar(n) Variable-length Unicode data with Maximum 4,000 characters 2 byte
nvarchar(max) Variable-length Unicode data with Maximum 536,870,912 characters
ntext Variable-length Unicode data. Maximum 2GB of text data or a
maximum length of 2^30 - 1 characters
Numeric Data Type
tinyint Allow Integer data from 0 – 255. 1 byte
smallint Allows whole numbers between -32,768 and 32,767 or 2 bytes
from -2^15 through 2^15 - 1
int Allows whole numbers between -2,147,483,648 and 2,147,483,647 or 4 bytes
from -2^31 through 2^31 - 1
bigint Allows whole numbers between -9,223,372,036,854,775,808 and 8 bytes
9,223,372,036,854,775,807 or
from -2^63 through 2^63-1
decimal(p,s) Fixed precision and scale numbers. 5-17 bytes
Allows numbers from -10^38 +1 to 10^38 –1.
The p parameter indicates the maximum total number of digits that
can be stored (both to the left and to the right of the decimal point). p
must be a value from 1 to 38. Default is 18.
The s parameter indicates the maximum number of digits stored to the
right of the decimal point. s must be a value from 0 to p. Default value
is 0
Precision
Storage
Size
1-9
5 bytes
10- 19
9 bytes
20-28
13 bytes
29-38
17 bytes
numeric(p,s) Fixed precision and scale numbers. 5-17 bytes
Allows numbers from -10^38 +1 to 10^38 –1.
The p parameter indicates the maximum total number of digits that
can be stored (both to the left and to the right of the decimal point). p
must be a value from 1 to 38. Default is 18.
The s parameter indicates the maximum number of digits stored to the
right of the decimal point. s must be a value from 0 to p. Default value
is 0
Precision
Storage
Size
1-9
5 bytes
10- 19
9 bytes
20-28
13 bytes
29-38
17 bytes
smallmoney Monetary data from -214,748.3648 to 214,748.3647 4 bytes
money Monetary data from -922,337,203,685,477.5808 to 8 bytes
922,337,203,685,477.5807
float(n) Floating precision number data from -1.79E + 308 to 1.79E + 308. 4 or 8 bytes
The n parameter indicates whether the field should hold 4 or 8 bytes.
float(24) holds a 4-byte field and float(53) holds an 8-byte field. Default
value of n is 53.
Precision
Storage
Size
7 digits
4 bytes
15 digits
8 bytes
real Floating precision number data from -3.40E + 38 to 3.40E + 38 4 bytes
Precision
Storage
Size
7 digits
4 bytes
Date Time Data Type
datetime From January 1, 1753 to December 31, 9999 with an accuracy of 3.33 8 bytes
milliseconds
datetime2 From January 1, 0001 to December 31, 9999 with an accuracy of 100 6-8 bytes
nanoseconds
smalldatetime From January 1, 1900 to June 6, 2079 with an accuracy of 1 minute 4 bytes
date Store a date only. From January 1, 0001 to December 31, 9999 3 bytes
time Store a time only to an accuracy of 100 nanoseconds 3-5 bytes
datetimeoffset The same as datetime2 with the addition of a time zone offset 8-10 bytes
timestamp Stores a unique number that gets updated every time a row gets
created or modified. The timestamp value is based upon an internal
clock and does not correspond to real time. Each table may have only
one timestamp variable
Binary Data Type
bit Allows 0, 1, or NULL
binary(n) Fixed-length binary data. Maximum 8,000 bytes
varbinary(n) Variable-length binary data. Maximum 8,000 bytes
varbinary(max) Variable-length binary data. Maximum 2GB
image Variable-length binary data. Maximum 2GB
Other Data Type
sql_variant Stores up to 8,000 bytes of data of various data types, except text, ntext,
and timestamp
uniqueidentifier Stores a globally unique identifier (GUID)
xml Stores XML formatted data. Maximum 2GB
cursor Stores a reference to a cursor used for database operations