T-SQL转换与转换
关于什么时候应该使用CAST
和CONVERT
的一般指导是什么? 是否有任何与select一个相比的性能问题? 一个更接近ANSI-SQL?
CONVERT
是SQL Server特定的, CAST
是ANSI。
CONVERT
更灵活,你可以格式化date等。除此之外,他们几乎是相同的。 如果您不关心扩展function,请使用CAST
。
编辑:
正如下面注释中的@beruic和@CF所指出的那样,当使用隐式转换(即,既不使用CAST也不使用CONVERT的情况下),可能会失去精度。 有关更多信息,请参阅CAST和CONVERT ,特别是此图: SQL Server数据types转换图 。 有了这些额外的信息,原来的build议仍然保持不变。 尽可能使用CAST。
转换具有date到string转换的样式参数。
CAST是标准的SQL,但CONVERT不是(仅用于方言T-SQL),在date时间的情况下我们有一个很小的优势
用CAST表示expression式和目标types; 使用CONVERT,还有第三个参数表示转换的样式,它支持一些转换,如string和date和时间值之间的转换。 例如,CONVERT(DATE,'1/2/2012',101)使用代表美国标准的样式101将字面string转换为DATE。
问候,
CAST使用ANSI标准。 在可移植性的情况下,这将在其他平台上工作。 CONVERT是特定于SQL Server的。 但function很强大。 您可以为date指定不同的样式