我在SQL Server 2008 R2上运行了一个返回DATETIME列的SQL查询。当前格式返回:
2011-08-25 16:35:51.000
我希望看到的是:
8/25/2011 4:35 PM
如何修改SELECT语句的想法?这里有一个简单的声明......
SELECT DtCheckIn from Ticket
谢谢你,安德鲁
答案 0 :(得分:3)
您可以执行以下操作:
SELECT convert(varchar, getdate(), 101) + RIGHT(convert(varchar, getdate(), 100), 7)
有关日期时间格式的资源:
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)
会为您提供2011年8月25日的日期。
第二部分SELECT convert(varchar, getdate(), 100)
以Aug 25 2011 5:35PM
格式为您提供日期和时间。您只希望格式为hh:mmAM
或hh:mmPM
的时间部分所需的字符总数为7.因此,如果您将其更改为SELECT RIGHT(convert(varchar, getdate(), 100), 8)
,您将获得时间{{ 1}}。我在5:37PM
中使用了8来获得额外的空间。但现在你只想要你的时间不是AM / PM所以添加SELECT LEFT(RIGHT(转换(varchar,getdate(),100),8),6)你会得到你的hh:mm。
最后你想要你的AM / PM RIGHT()
这将获得最后2个字符。
把它们放在一起然后得到:
SELECT RIGHT(convert(varchar, getdate(), 100), 2)
这给出了您的最终产品:
SELECT convert(varchar, getdate(), 101)
+ LEFT(RIGHT(convert(varchar, getdate(), 100), 8), 6)
+ ' ' + RIGHT(convert(varchar, getdate(), 100), 2)