将日期时间转换为数字表示形式
我想将日期时间字段转换为 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。
这总是有效吗?我会遇到一些问题吗?有更好的方法来实现这一目标吗?
谢谢
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这种方法可行,但不确定本地化设置会发生什么。如果您使用内置的日期时间转换函数选项 (http://msdn.microsoft. com/en-us/library/ms187928.aspx)您可以避免使用替换,而不必担心区域设置。
例子:
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: