将日期时间转换为数字表示

时间:2011-10-24 19:19:43

标签: tsql sql-server-2008

我想将日期时间字段转换为YYYYMMDD形式的数字表示。所以,我的逻辑是(从2011-01-01 12:00:00.000到20110101):

convert(int, replace(cast(getdate() as date), '-', ''))

根据MSDN(http://msdn.microsoft.com/en-us/library/bb630352.aspx),字符串表示是[always?]“YYYY-MM-DD”,所以我只是在从字符串中删除破折号后将该字符串转换为INT。

这总是有效吗?我会遇到一些问题吗?有没有更好的方法来实现这一目标?

由于

1 个答案:

答案 0 :(得分:8)

这种方法可行,不确定本地化设置会发生什么。如果您使用内置的日期时间转换功能选项(http://msdn.microsoft.com/en-us/library/ms187928.aspx),则可以避免使用替换,而不必担心区域设置。

示例:

select CAST(convert(varchar,getdate(),112) as int)