2013-10-16 114 views
0

我有一个带日期时间列的表格我想用hh:mm:ss检索日期,其中小时为12小时。日期转换

我试过以下。

convert(varchar(10), t2.CSM_START_TIME,108), 
convert(varchar(2),datepart(hour,t2.CSM_START_TIME)) 
    +':'+convert(varchar(2),datepart(mm,t2.CSM_START_TIME)) 
    +':'+convert(varchar(2), datepart(SECOND,t2.CSM_START_TIME)) 
    as START_TIME 
+0

你的尝试的结果是什么? – geomagas

+0

你期望什么格式,你得到什么格式?你能证明你有什么,它是怎么回事?你为什么不在表示层设置它?所以,如此简单。 –

+0

你真的想要hh:mm:ss没有AM/PM吗?所以你不知道11:34:25是上午还是下午? –

回答

3
SELECT LTRIM(RIGHT(CONVERT(CHAR(20),GETDATE(),22),11)); 

结果:

11:40:15 PM 

或者,如果你真的不想要的AM/PM(我不知道):

SELECT LTRIM(LEFT(RIGHT(CONVERT(CHAR(20), GETDATE(),22),11),8)); 

结果:

11:40:15 

在客户端进行格式化要好得多。例如,如果您使用的是C#,请参阅.Format().ToString()。不要让SQL Server做肮脏的演示文稿工作,特别是当您有much more flexible features in a more powerful language时。

-1

你应该试试这个

DATE_FORMAT(NOW(),'%h:%i %p') 

否则你会发现更多的在这里​​。

+1

这是ms sql。 – user2883955

0

这让我想要什么。 (convert(varchar(40),t2.CSM_START_TIME,109),25,2)

(substring(convert(varchar(40),t2.CSM_START_TIME,109),12,9)