Applies to: SQL Server (all supported versions) Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

This function returns the number of bytes used to represent any expression.


To return the number of characters in a string expression, use the LEN function.

Topic link icon Transact-SQL Syntax Conventions


DATALENGTH ( expression )   


To view Transact-SQL syntax for SQL Server 2014 and earlier, see Previous versions documentation.


An expression of any data type.

Return types

bigint if expression has an nvarchar(max), varbinary(max), or varchar(max) data type; otherwise int.


DATALENGTH becomes really helpful when used with data types that can store variable-length data, such as:

  • image
  • ntext
  • nvarchar
  • text
  • varbinary
  • varchar

For a NULL value, DATALENGTH returns NULL.


Compatibility levels can affect return values. See ALTER DATABASE Compatibility Level (Transact-SQL) for more information about compatibility levels.


Use the LEN to return the number of characters encoded into a given string expression, and DATALENGTH to return the size in bytes for a given string expression. These outputs may differ depending on the data type and type of encoding used in the column. For more information on storage differences between different encoding types, see Collation and Unicode Support.


This example finds the length of the Name column in the Product table:

USE AdventureWorks2016  
SELECT length = DATALENGTH(EnglishProductName), EnglishProductName  
FROM dbo.DimProduct  
ORDER BY EnglishProductName;  

See also

LEN (Transact-SQL)
CAST and CONVERT (Transact-SQL)
Data Types (Transact-SQL)
System Functions (Transact-SQL)