2017-04-03 73 views
0

如何將時間:'8:02:24 AM'轉換爲'08:02:24 AM',以便在特定時間列是固定長度的。轉換時間以hh:mm:ss AM(PM)格式(sql)

我嘗試在轉換函數中使用不同的樣式值,但無法獲得我想要的結果。

+4

請僅標記相關的DBMS。 Oracle,SQL Server和MySQL的處理方式不同 – JohnHC

+0

什麼是您的源列數據類型? –

+0

@RajeshBhat datetime –

回答

1

你可以使用CONVERT函數將所有時間值轉換到24小時格式

SELECT CONVERT(VARCHAR, <your column name>, 108) AS HourMinuteSecond 

你可以通過執行以下查詢

SELECT CONVERT(VARCHAR, CONVERT(DATETIME, '8:08:8 PM'), 108) AS HourMinuteSecond 

如果不檢查結果想要24小時格式,您可以使用

SELECT REPLACE(RIGHT('0' + LTRIM(RIGHT(CONVERT(VARCHAR, <your column name>, 131), 14)), 11), ':000', ' ') AS HourMinuteSecond 

示例:

SELECT REPLACE(RIGHT('0' + LTRIM(RIGHT(CONVERT(VARCHAR, CONVERT(DATETIME, '8:8:8 PM'), 131), 14)), 11), ':000', ' ') AS HourMinuteSecond 
+0

我不希望它在24小時格式。對於08PM也應該顯示,08:00:00 PM而不是20:00:00 –

+0

我已經更新了答案,請檢查 –

+0

謝謝!它工作完美。 –

0

下面的示例代碼將基於小時零件長度(1或2)加0。

declare @hour char(2) 
    declare @time varchar(20)='8:02:24 PM' 
    select @hour=substring(@time,1,charindex(':',@time)-1) 
    if len(@hour)=1 
    begin 
     set @hour='0'[email protected] 
     set @[email protected]+substring(@time,charindex(':',@time),10) 
    end 
    select @time 
相關問題