Friday 5 November 2010

TSQL Data Types

Below is a list of all of the available data types in TSQL and their relevant attributes.

Exact Numbers

Field Type
Parameters
bigint
Range: -2^63 (-9,223,372,036,854,775,808) to 2^63-1 (9,223,372,036,854,775,807)
Space: 8 Bytes

int
Range: -2^31 (-2,147,483,648) to 2^31-1 (2,147,483,647)
Space: 4 Bytes

smallint
Range: -2^15 (-32,768) to 2^15-1 (32,767)
Space: 2 Bytes

tinyint
Range: 0 to 255
Space: 1 Byte

bit
Range: 0 (FALSE) or 1 (TRUE)
Space: 8 bit columns in a table, will be collectively stored as: 1 Byte
9 - 16 bit columns in a table, will be collectively stored as: 2 Bytes, etc.

decimal
Declaration: decimal(p[,s]). 
p = Precision - total number of digits stored to both the left and right of the decimal point.
s = Scale the maximum number of digits stored to the right of the decimal point (optional).

Precision 1 - 9: Storage is 5 bytes
Precision 10 - 19: Storage is 9 bytes
Precision 20 - 28: Storage is 13 bytes
Precision 29 - 38: Storage is 17 bytes

Minimum Precision is 1 and Maximum Precision is 38. The Default Precision is 18.
Note: Decimal is equivalent to Numeric.

numeric
Declaration: numeric(p[,s]). 
p = Precision - total number of digits stored to both the left and right of the decimal point.
s = Scale the maximum number of digits stored to the right of the decimal point (optional).

Precision 1 - 9: Storage is 5 bytes
Precision 10 - 19: Storage is 9 bytes
Precision 20 - 28: Storage is 13 bytes
Precision 29 - 38: Storage is 17 bytes

Minimum Precision is 1 and Maximum Precision is 38. The Default Precision is 18.
Note: Numeric is equivalent to Decimal.

money
Range: -922,337,203,685,477.5808 to 922,337,203,685,477.5807
Space: 8 bytes

smallmoney
Range: -214,748.3648 to 214,748.3647
Space: 4 bytes


Approximate Numbers

Field Type
Parameters
float
Declaration: float(n). 
n = the number of bits used to store the floating point number.

Range: -1.79E+308 to -2.23E-308, 0 and 2.23E-308 to 1.79E+308

n Value 1 - 24: Precision - 7 digits: Space - 4 bytes
n Value 25 - 53: Precision - 15 digits: Space - 8 bytes

real
Range: -3.40E + 38 to -1.18E - 38, 0 and 1.18E - 38 to 3.40E + 38
Space: 4 bytes

Note: Real is equivalent to float(24).


Date and Time

Field Type
Parameters
datetime
Range: January 1, 1753, through December 31, 9999
Accuracy: 3.33 ms Space: 8 bytes (two 4 byte integers). First 4 bytes represent the number of days before or after Jan. 1, 1900. The Second 4 bytes store the time of day as a number 1/3000-second units after 12:00 AM (00:00:00).

smalldatetime
Range: January 1, 1900, through June 6, 2079
Accuracy: 1 min Space: 4 bytes (two 2 byte integers). First 2 bytes represent the number of days after Jan. 1, 1900. The Second 2 bytes store the number of minutes after 12:00 AM (00:00:00).


Character Strings

Field Type
Parameters
char
Definition: Fixed-Length character string.
Declaration: char(n). 
n = the number of characters.

Space: n number of bytes

Valid lengths for a char datatype are 1 through 8,000.

varchar
Definition: Variable-Length character string.
Declaration: varchar(n | max). 
n = the number of characters.

Space: characters actually used in datatype (1 byte per character) + 2 additional bytes

Valid lengths for a varchar datatype are 1 through 8,000. Alternatively, MAX allows for a much larger maximum storage size (2^31-1 bytes - 2,147,483,647 characters).

text
Definition: Variable-Length character string in the code page of the server.

Maximum length is 2,147,483,647 characters.
Note: will be removed in future versions. Use varchar(max) instead.


Unicode Character Strings

Field Type
Parameters
nchar
Definition: Fixed-Length Unicode character string.
Declaration: nchar(n). 
n = the number of characters.

Space: n * 2 number of bytes

Valid lengths for a char datatype are 1 through 4,000.

nvarchar
Definition: Variable-Length Unicode character string.
Declaration: nvarchar(n | max). 
n = the number of characters.

Space: characters actually used in datatype (2 bytes per character) + 2 additional bytes

Valid lengths for a varchar datatype are 1 through 4,000. Alternatively MAX indicates that the maximum storage size is much larger (2^31-1 bytes - 2,147,483,647 characters).

ntext
Definition: Variable-Length character string in the code page of the server.

Maximum length is 1,073,741,823 characters.
Note: will be removed in future versions. Use nvarchar(max) instead.


Binary Strings

Field Type
Parameters
binary
Definition: Fixed-Length binary data.
Declaration: binary(n). 

Space: n number of bytes.
Maximum length is 8000 bytes.

varbinary
Definition: Variable-Length binary data.
Declaration: varbinary(n | max). 
n = the number of characters.

Space: actual number of bytes stored in datatype + 2 additional bytes

Valid lengths for a varbinary datatype are 1 through 8,000. Alternatively, MAX allows for a much larger maximum storage size (2^31-1 bytes - 2,147,483,647 bytes).

image
Definition: Variable-Length binary data.

Maximum length is 2,147,483,647 bytes.

Note: will be removed in future versions. Use varbinary(max) instead.



Other Data Types
  • cursor
  • sql_variant
  • table
  • timestamp
  • uniqueidentifier
  • xml

No comments:

Post a Comment