将 SQL DATETIME 结果格式化为 --> 2011 年 8 月 25 日下午 4:35 <-- 不是 --> 2011-08-25 16:35:51.000 <--
我有一个在 SQL Server 2008 R2 上运行的 SQL 查询,它返回 DATETIME 列。当前的格式返回此:
2011-08-25 16:35:51.000
我更愿意看到的是:
8/25/2011 4:35 PM
如何修改我的 SELECT 语句的想法?这是一个简单的声明...
SELECT DtCheckIn from Ticket
谢谢你,安德鲁
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以执行以下操作:
有关日期时间格式的资源:
http://anubhavg.wordpress.com/2009/06/11/how-to-format-datetime-date-in-sql-server-2005/
http://www.mssqltips.com/sqlservertip/1145/date-and-time-conversions-using-sql-server/
编辑 - 这有点做作,但它应该给你什么你正在寻找。
基本上,第一部分
SELECT Convert(varchar, getdate(), 101)
为您提供日期 08/25/2011。第二部分
SELECT Convert(varchar, getdate(), 100)
以Aug 25 2011 5:35PM
格式提供日期和时间。您只需要采用hh:mmAM
或hh:mmPM
格式的时间部分,则所需的字符总数为 7。因此,如果您将其更改为选择正确(convert(varchar, getdate(), 100), 8)
,您将获得时间5:37PM
。我在RIGHT()
中使用了 8 来获得额外的空间。但现在您只想要时间而不是 AM/PM,因此添加 SELECT LEFT(RIGHT(convert(varchar, getdate(), 100), 8), 6),您将得到 hh:mm。最后,您希望 AM/PM
SELECT RIGHT(convert(varchar, getdate(), 100), 2)
这将为您提供最后 2 个字符。把它们放在一起,你会得到:
这给出了你的最终产品:
You could do the following:
Resources on date time formatting:
http://anubhavg.wordpress.com/2009/06/11/how-to-format-datetime-date-in-sql-server-2005/
http://www.mssqltips.com/sqlservertip/1145/date-and-time-conversions-using-sql-server/
EDIT - it's a little hokey but it should give you what you are looking for.
Basically the first part
SELECT convert(varchar, getdate(), 101)
gives you your date 08/25/2011.The second part
SELECT convert(varchar, getdate(), 100)
gives you your date and time in the formatAug 25 2011 5:35PM
. You only want the time portion which is in the formathh:mmAM
orhh:mmPM
the total number of characters you want is 7. So if you change this toSELECT RIGHT(convert(varchar, getdate(), 100), 8)
you will get your time5:37PM
. I used 8 in myRIGHT()
to get an extra space. But now you only want your time not AM/PM so add SELECT LEFT(RIGHT(convert(varchar, getdate(), 100), 8), 6) and you will get your hh:mm.Finally you want your AM/PM
SELECT RIGHT(convert(varchar, getdate(), 100), 2)
this will get you the last 2 characters.Put it all together and you get:
Which gives your final product: