Bud*_*Joe 314 sql t-sql database sql-server
什么时候应该使用CASTvs. 一般指导CONVERT?是否存在与选择其中一个相关的性能问题?是否更接近ANSI-SQL?
Mat*_*ell 329
CONVERT是SQL Server特定的,CAST是ANSI.
CONVERT更灵活的是你可以格式化日期等.除此之外,它们几乎是一样的.如果您不关心扩展功能,请使用CAST.
编辑:
正如@beruic和@CF在下面的注释中所指出的,当使用隐式转换时(可能既不使用CAST也不使用CONVERT),可能会丢失精度.有关详细信息,请参阅CAST和CONVERT,尤其是此图:SQL Server数据类型转换图表.有了这些额外信息,原始建议仍然保持不变.尽可能使用CAST.
小智 10
CAST是标准SQL,但CONVERT不是(仅用于方言T-SQL),在日期时间转换时我们有一个很小的优势
使用CAST,您可以指示表达式和目标类型; 使用CONVERT,第三个参数表示转换的样式,某些转换支持这种转换,例如字符串和日期和时间值.例如,CONVERT(DATE,'1/2/2012',101)使用表示美国标准的样式101将文字字符串转换为DATE.
问候,
似乎没有人注意到的是可读性。有...
CONVERT(SomeType,
SomeReallyLongExpression
+ ThatMayEvenSpan
+ MultipleLines
)
Run Code Online (Sandbox Code Playgroud)
……可能比……更容易理解
CAST(SomeReallyLongExpression
+ ThatMayEvenSpan
+ MultipleLines
AS SomeType
)
Run Code Online (Sandbox Code Playgroud)