在 nvarchar 中格式化日期的更好方法
我需要 SQL 2008 中的“2011 年 10 月 24 日”这样的日期格式,并且转换函数中没有任何内置格式来获取此格式。我有两种方法可以实现这一目标。有人可以指导我从以下两种方法中获得执行和性能方面的最佳方法吗?
1) select substring(convert(varchar(20),getdate(),106),8,4) + ' ' +
substring(convert(varchar(20),getdate(),106),4,3) + ' ' +
substring(convert(varchar(20),getdate(),106),1,3)
2) SELECT DATENAME(YYYY,GETDATE()) + ' ' + CAST(DATENAME(MM,GETDATE()) AS VARCHAR(3)) + ' ' + DATENAME(DD,GETDATE())
更新:
请检查以下问题: 如何自定义sql日期时间格式? 我还在这个问题中给出了答案,但是另一个答案获得的票数比我的答案多。所以我很困惑哪一种是最好的方法。
I need date format like "2011 Oct 24" in SQL 2008 and there is no any inbuilt format in convert function to get this. I got 2 ways to achieve this. Can anybody please guide me which are best way from following 2 ways to get it in terms of execution and performance ?
1) select substring(convert(varchar(20),getdate(),106),8,4) + ' ' +
substring(convert(varchar(20),getdate(),106),4,3) + ' ' +
substring(convert(varchar(20),getdate(),106),1,3)
2) SELECT DATENAME(YYYY,GETDATE()) + ' ' + CAST(DATENAME(MM,GETDATE()) AS VARCHAR(3)) + ' ' + DATENAME(DD,GETDATE())
UPDATE :
Please check below question :
customization on sql datetime format how?
I had also given answer in this question but another answer got more votes than my answer. So I am confused which one is best way.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这样做的目的是什么?
如果将其传递给 ASP.NET Web 应用程序,则可以保留日期的原始格式并在应用程序级别更改格式:
但是,如果需要在 SQL 级别进行格式化,则可以执行以下操作:
What is the purpose of this?
If you are passing this to an ASP.NET Web Application, you could keep the date in its raw format and change the format at the application level:
However, if you need to format at SQL level, you could do the following:
http://msdn.microsoft.com/en-us/library/ms187928.aspx
http://msdn.microsoft.com/en-us/library/ms187928.aspx