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

发布于 2024-12-11 16:22:15 字数 440 浏览 0 评论 0 原文

我想将日期时间字段转换为 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 ),字符串表示形式是[总是?]“YYYY-MM-DD”,所以我简单地从字符串中删除破折号后,将该字符串转换为 INT。

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

谢谢

I want to convert a datetime field into a numeric representation in form of YYYYMMDD. So, my logic here is (from 2011-01-01 12:00:00.000 to 20110101) :

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

According to MSDN ( http://msdn.microsoft.com/en-us/library/bb630352.aspx ), the string representation is [always?] "YYYY-MM-DD", so I simply convert that string to an INT after removing dashes from the string.

Will this always works? Will I encounter some problems with that? Is there a better way to achieve this?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

老旧海报 2024-12-18 16:22:15

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

例子:

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

That approach can work, not sure what would happen with localization settings. If you use the built in datetime conversion function options (http://msdn.microsoft.com/en-us/library/ms187928.aspx) you can avoid using the replace and not worry about locales.

Example:

select CAST(convert(varchar,getdate(),112) as int)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文