问题描述
关于何时应该使用 CAST
和 CONVERT
的一般指导是什么?是否存在与选择一个或另一个相关的性能问题?是不是更接近于 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.
这篇关于T-SQL 转换与转换的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!