T-SQL转换与转换

关于什么时候应该使用CASTCONVERT的一般指导是什么? 是否有任何与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转换的样式参数。

http://msdn.microsoft.com/en-us/library/ms187928.aspx

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指定不同的样式