问题描述
选择什么:Cast
或 Convert
用于日期时间(Microsoft SQL Server)?
What to choose: Cast
or Convert
for datetimes (Microsoft SQL Server)?
我看过MSDN规格.乍一看似乎没有区别,除了语法:
I have had a look at the MSDN Specifications. At the first glance it seems there is no difference, except for the syntax:
CAST 的语法:
CAST ( expression AS data_type [ ( length ) ] )
CONVERT 的语法:
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
而且 CAST 是 ANSI 标准的,这使得它在不同的数据库平台上更具可移植性.
And CAST is ANSI-standard, which makes it more portable accross different database platforms.
推荐答案
convert
有一个可选参数 style
,我建议使用 convert
> 而不是 cast
.它有助于避免混淆.例如,如果你写 cast('20130302' as date)
,你会得到什么?3 月 2 日还是 2 月 3 日?
convert
has an optional parameter style
, and I suggest to use convert
instead of cast
. It helps to avoid confusion.For example, if you write cast('20130302' as date)
, what would you get? March 2 or February 3?
此外,如果您在将日期转换为字符串时需要特定格式,则必须使用 convert
Also, if you want specific format when casting to date to string, you bound to use convert
这篇关于日期时间投射或转换?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!