SQL Server groups its data types by what they hold, mainly numbers, strings and dates. The type decides how much space a column takes and which values it accepts.
- Exact numbers:
TINYINT,SMALLINT,INT,BIGINT,DECIMAL,NUMERIC,MONEY - Approximate numbers:
FLOAT,REAL - Strings:
CHAR,VARCHAR,NCHAR,NVARCHAR - Dates and times:
DATE,TIME,DATETIME,DATETIME2,SMALLDATETIME,DATETIMEOFFSET - Binary:
BINARY,VARBINARY - Special:
BIT,UNIQUEIDENTIFIER,XML
TEXT, NTEXT and IMAGE still exist, but they are deprecated. New code uses VARCHAR(MAX), NVARCHAR(MAX) and VARBINARY(MAX) instead.
SQL Server 2016 added JSON functions for JSON stored in NVARCHAR strings. A native JSON data type arrived only in SQL Server 2025 and Azure SQL Database.
Example:
CREATE TABLE Employee (
ID INT,
Name NVARCHAR(50),
Salary DECIMAL(10,2),
HireDate DATETIME
);
This answer doesn't lend itself to a diagram - it reads best . No credits were charged.
Why there's no diagram: “”
The interactive diagram is below the answer - jump to diagram ↓ · Below it, the related concept . Jump to it ↓
The diagram below the answer is the concept . Jump to it ↓