2016-04-28 3 views
0

Ich habe ein Skript, das ich verwende, um eine Zeitdimensionstabelle zu füllen, und ich möchte eine Spalte für die Zeit im 12-Stunden-Format haben.Konvertieren Sie Zeit in SQL in 12-Stunden-Format MIT Sekunden auf

ich das erkennen kann, indem Sie etwas entlang der Linien von

SELECT CONVERT(varchar(15),[FullTime],100) 

erfolgen Wo [FullTime] ist eine Spalte ein TIME Feld in HH enthält: MM: SS-Format.

Aber das ergibt das folgende Ergebnis 2:30pm und ich möchte 2:30:47PM, beachten Sie die Aufnahme von Sekunden.

Ich weiß, ich könnte dies mit Teilstrings etc. aufbauen, aber ich fragte mich, ob es eine schönere Art und Weise, es zu tun.

Dank

+0

Verwenden Sie 120 oder 121 anstelle von 100 in 'convert'. Weitere Informationen hier https://msdn.microsoft.com/en-us/library/ms187928.aspx – gofr1

+0

versuchen Sie diese 'SELECT CONVERT (VARCHAR, GETDATE(), 9)' –

Antwort

0
SELECT GETDATE() 'Today', 
     CONVERT(VARCHAR(8), [FullTime], 108) 'hh:mi:ss' 

Taken from here

Dies gibt Ihnen eine Spalte 'heute' durch den Zeitwert gefolgt Sie suchen 'hh: mi: ss'

+0

Nicht sicher, ob ich einige falsche Einstellung habe, aber das ist Anzeige im 24-Stunden-Datumsformat, dh 13 Uhr steht 13 als nicht 1. –

0
Declare @tstTime datetime 
set @tstTime = GetDate() 

Select 
@tstTime 
,CONCAT(SUBSTRING(CONVERT(varchar(26), @tstTime, 109),1,20),RIGHT(CONVERT(varchar(26), @tstTime, 109),2)) 
+0

Danke, aber das kommt als 24-Stunden-Format, ich möchte, dass es im 12-Stunden-Format erscheint, dh 5 nach 2 am Nachmittag würde als 2:05 erscheinen : 00PM –

+0

Gotcha ... revidierte die Lösung. Ich habe keine bestimmte Formatnummer für genau das, was Sie wollen, gesehen, also musste ich es mit String-Funktionen erstellen –

0

Wenn auch mit Millisekunden ist kein Problem für Sie, Sie können

SELECT CONVERT(VARCHAR, [FullTime], 109) 
verwenden
Verwandte Themen