SQL Server: Data Types

datatypes available

The following is a list of datatypes available in SQL Server (Transact-SQL), which includes string, numeric, and date/time datatypes.

String Datatypes

The following are the String Datatypes in SQL Server (Transact-SQL):

Data Type SyntaxMaximum SizeExplanation
CHAR(size)Maximum size of 8,000 characters.Where size is the number of characters to store. Fixed-length. Space padded on right to equal size characters. Non-Unicode data.
VARCHAR(size) or VARCHAR(max)Maximum size of 8,000 or max characters.Where size is the number of characters to store. Variable-length. If max is specified, the maximum number of characters is 2GB. Non-Unicode data.
TEXTMaximum size of 2GB.Variable-length. Non-Unicode data.
NCHAR(size)Maximum size of 4,000 characters.Fixed-length. Unicode data.
NVARCHAR(size) or NVARCHAR(max)Maximum size of 4,000 or max characters.Where size is the number of characters to store. Variable-length. If max is specified, the maximum number of characters is 2GB. Unicode data.
NTEXTMaximum size of 1,073,741,823 bytes.Variable length. Unicode data.
BINARY(size)Maximum size of 8,000 characters.Where size is the number of characters to store. Fixed-length. Space padded on right to equal size characters. Binary data.
VARBINARY(size) or VARBINARY(max)Maximum size of 8,000 or max characters.Where size is the number of characters to store. Variable-length. If max is specified, the maximum number of characters is 2GB. Non-Binary data.
IMAGEMaximum size of 2GB.Variable length . Binary data.

Numeric Datatypes

The following are the Numeric Datatypes in SQL Server (Transact-SQL):

Data Type SyntaxMaximum SizeExplanation
BITInteger that can be 0, 1, or NULL. 
TINYINT0 to 255 
SMALLINT-32768 to 32767 
INT-2,147,483,648 to 2,147,483,647 
BIGINT-9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 
DECIMAL(m,d)m defaults to 18, if not specified.
d defaults to 0, if not specified.
Where m is the total digits and d is the number of digits after the decimal.
DEC(m,d)m defaults to 18, if not specified.
d defaults to 0, if not specified.
Where m is the total digits and d is the number of digits after the decimal.

This is a synonym for the DECIMAL datatype.
NUMERIC(m,d)m defaults to 18, if not specified.
d defaults to 0, if not specified.
Where m is the total digits and d is the number of digits after the decimal.

This is a synonym for the DECIMAL datatype.
FLOAT(n)Floating point number.
n defaults to 53, if not specified.
Where n is the number of number of bits to store in scientific notation.
REALEquivalent to FLOAT(24) 
SMALLMONEY– 214,748.3648 to 214,748.3647 
MONEY-922,337,203,685,477.5808 to 922,337,203,685,477.5807 

Date/Time Datatypes

The following are the Date/Time Datatypes in SQL Server (Transact-SQL):

Data Type SyntaxMaximum SizeExplanation
(if applicable)
DATEValues range from ‘0001-01-01’ to ‘9999-12-31’.Displayed as ‘YYYY-MM-DD’
DATETIMEDate values range from ‘1753-01-01 00:00:00’ to ‘9999-12-31 23:59:59’.
Time values range from ’00:00:00′ to ’23:59:59:997′
Displayed as ‘YYYY-MM-DD hh:mm:ss[.mmm]’
DATETIME2(fractional seconds precision)Date values range from ‘0001-01-01’ to ‘9999-12-31’.
Time values range from ’00:00:00′ to ’23:59:59:9999999′.
Displayed as ‘YYYY-MM-DD hh:mm:ss[.fractional seconds]’
SMALLDATETIMEDate values range from ‘1900-01-01’ to ‘2079-06-06’.
Time values range from ’00:00:00′ to ’23:59:59′.
Displayed as ‘YYYY-MM-DD hh:mm:ss’
TIMEValues range from ’00:00:00.0000000′ to ’23:59:59.9999999′Displayed as ‘YYYY-MM-DD hh:mm:ss[.nnnnnnn]’
DATETIMEOFFSET(fractional seconds precision)Date values range from ‘0001-01-01’ to ‘9999-12-31’.
Time values range from ’00:00:00′ to ’23:59:59:9999999′.
Time zone offset range from -14:00 to +14:00.
Displayed as ‘YYYY-MM-DD hh:mm:ss[.nnnnnnn]’ [{+|-}hh:mm]

This Post Has One Comment

Leave a Reply