T-SQL 转换与转换

2021-12-05 00:00:00 sql database tsql sql-server

关于何时应该使用 CASTCONVERT 的一般指导是什么?是否存在与选择一个或另一个相关的性能问题?是不是更接近于 ANSI-SQL?

What is the general guidance on when you should use CAST versus CONVERT? Is there any performance issues related to choosing one versus the other? Is one closer to ANSI-SQL?

推荐答案

CONVERT 是 SQL Server 特定的,CAST 是 ANSI.

CONVERT is SQL Server specific, CAST is ANSI.

CONVERT 更灵活,您可以格式化日期等.除此之外,它们几乎相同.如果您不关心扩展功能,请使用 CAST.

CONVERT is more flexible in that you can format dates etc. Other than that, they are pretty much the same. If you don't care about the extended features, use CAST.

正如@beruic 和@C-F 在下面的评论中指出的那样,使用隐式转换时可能会损失精度(即既不使用 CAST 也不使用 CONVERT 的转换).有关详细信息,请参阅 CAST 和 CONVERT,特别是此图形:SQL Server 数据类型转换图表.有了这些额外的信息,原来的建议仍然保持不变.尽可能使用 CAST.

As noted by @beruic and @C-F in the comments below, there is possible loss of precision when an implicit conversion is used (that is one where you use neither CAST nor CONVERT). For further information, see CAST and CONVERT and in particular this graphic: SQL Server Data Type Conversion Chart. With this extra information, the original advice still remains the same. Use CAST where possible.

相关文章