如何从GetDate()获取时间部分作为hh:mm tt在SQL Server中

时间:2015-05-21 06:39:55

标签: sql sql-server

这与How to get time part from SQL Server 2005 datetime in 'HH:mm tt' format

不重复

导致该问题的所有答案都在下午12:06返回(没有空格且需要空格)

我试图从SQL GETDATE()

中获取时间

我正在尝试

SELECT LTRIM(RIGHT(CONVERT(VARCHAR(20), GETDATE(), 100), 7))

但它正在返回

12:06PM

我需要下午12:06(上午或下午之前的空间)..

搜索了很多但却失败了......

6 个答案:

答案 0 :(得分:6)

对于上面的SQL 2012:

SELECT FORMAT(GETDATE(), 'h:mm tt', 'en-US')

答案 1 :(得分:3)

试试这个

SELECT Replace(Replace(LTRIM(RIGHT(CONVERT(VARCHAR(20), GETDATE(), 100), 7)),'PM',' PM'),'AM',' AM')

答案 2 :(得分:2)

试试这个:

SELECT substring(CONVERT(varchar(20), GetDate(), 9), 13, 5) + 
       ' ' + 
       substring(CONVERT(varchar(30), GetDate(), 9), 25, 2)

答案 3 :(得分:2)

您可以使用:

select CONVERT(VARCHAR(5), GETDATE(), 108) + ' ' + 
       RIGHT(CONVERT(VARCHAR(30), GETDATE(), 9),2)

SQL小提琴:http://sqlfiddle.com/#!6/a7540/2377

答案 4 :(得分:1)

经过很多实践最短的答案后我得到了..

SELECT CONVERT(VARCHAR(11), 
              STUFF(RIGHT( 
              CONVERT(VARCHAR,GETDATE(),100 ) ,7),
              6, 0, ' '))

全部谢谢

答案 5 :(得分:0)

格式(GETDATE(),' h:mm tt',' en-US')