数据类型优先级 (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)