2013-10-16 31 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)