Skip to content

Latest commit

 

History

History
62 lines (57 loc) · 2.27 KB

data-type-precedence-transact-sql.md

File metadata and controls

62 lines (57 loc) · 2.27 KB
title description author ms.author ms.date ms.service ms.subservice ms.topic helpviewer_keywords dev_langs monikerRange
Data type precedence (Transact-SQL)
Explains data type precedence for Transact-SQL
MikeRayMSFT
mikeray
07/23/2017
sql
t-sql
reference
precedence [SQL Server]
data types [SQL Server], converting
data types [SQL Server], precedence
converting data types [SQL Server], precedence
precedence [SQL Server], data types
TSQL
= azuresqldb-current || = azuresqldb-mi-current || >= sql-server-2016 || >= sql-server-linux-2017 || = azuresqledge-current || =azure-sqldw-latest ||=fabric

Data type precedence (Transact-SQL)

[!INCLUDE sql-asdb-asdbmi-asa-pdw-fabricse-fabricdw]

When an operator combines expressions of different data types, the data type with the lower precedence is first converted to the data type with the higher precedence. If the conversion isn't a supported implicit conversion, an error is returned. For an operator combining operand expressions having the same data type, the result of the operation has that data type.

[!INCLUDEssNoVersion] uses the following precedence order for data types:

  1. user-defined data types (highest)
  2. sql_variant
  3. xml
  4. datetimeoffset
  5. datetime2
  6. datetime
  7. smalldatetime
  8. date
  9. time
  10. float
  11. real
  12. decimal
  13. money
  14. smallmoney
  15. bigint
  16. int
  17. smallint
  18. tinyint
  19. bit
  20. ntext
  21. text
  22. image
  23. timestamp
  24. uniqueidentifier
  25. nvarchar (including nvarchar(max) )
  26. nchar
  27. varchar (including varchar(max) )
  28. char
  29. varbinary (including varbinary(max) )
  30. binary (lowest)

See also

Data types (Transact-SQL)
Expressions (Transact-SQL)
CAST and CONVERT (Transact-SQL)