Приоритет типов данных (Transact-SQL)

Если оператор связывает два выражения различных типов данных, то по правилам приоритета типов данных определяется, какой тип данных имеет меньший приоритет и будет преобразован в тип данных с большим приоритетом. Если неявное преобразование не поддерживается, возвращается ошибка. Если оба операнда выражения имеют одинаковый тип данных, результат операции будет иметь тот же тип данных.

В SQL Server используется следующий приоритет типов данных:

  1. определяемые пользователем типы данных (высший приоритет);

  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 (включая nvarchar(max));

  26. nchar

  27. varchar (включая varchar(max));

  28. char;

  29. varbinary (включая varbinary(max));

  30. binary (низший приоритет).

См. также

Справочник

Типы данных (Transact-SQL)

Выражения (Transact-SQL)

Функции CAST и CONVERT (Transact-SQL)