2016-07-18 8 views
-1

Ich versuche, ein kleines in ein Zeitformat zu konvertieren.Konvertieren SmallInt in Zeit

Ich verwende SQL Server 2005, der den Zeitdatentyp nicht unterstützt.

Ich speichere die Zeit als 1400, die eine kleine ist. Beim Abrufen möchte ich es in ein Zeitformat konvertieren. Wie zum Beispiel 14:00

Irgendwelche Ideen oder Anleitung in der Sache. Wenn es einen einfacheren Weg gibt, oder wenn die Art, wie ich versuche, möglich ist?

Dank

+1

Wollen Sie dies in ein Varchar '14: 00' konvertiert? Wie willst du das konvertiert werden? – Siyual

+1

Was genau meinst du mit einem "Zeitformat"? Da Sie den Datentyp "time" in SQL 2005 nicht zurückgeben können, möchten Sie ein varchar? eine Datetime? –

+0

entweder tbh, herauszufinden, welche Möglichkeiten möglich sind, bevor Sie eine Entscheidung treffen @TabAlleman –

Antwort

2

Sie ein Ergebnis als varchar unter Verwendung dieses nicht erhalten:

SELECT 
    RIGHT('0' + CONVERT(varchar(10), yourTime/100), 2) + ':' + 
    RIGHT('0' + CONVERT(varchar(10), yourTime % 100), 2) As timeString 
FROM 
    yourTable 

Sie können auch ein Ergebnis haben in DATETIME Format wie folgt aus: In

SELECT 
    CONVERT(datetime, CONVERT(varchar(10), yourTime/100)+ ':' + CONVERT(varchar(10), yourTime % 100)) 
FROM 
    yourTable 

SQL Server 2012+ können Sie ein Ergebnis im Zeitformat haben:

SELECT 
    TIMEFROMPARTS(yourTime/100, yourTime % 100, 0, 0, 0) As timeFormat 
FROM 
    yourTable 
+0

Das OP erwähnt ausdrücklich in seiner Frage, dass er SQL Server 2005 verwendet, der den 'TIME'-Datentyp nicht unterstützt. – Siyual

+0

Nicht mein DV, aber 'TIMEFROMPARTS' ist nicht im Jahr 2005 verfügbar. –

+0

@MartinSmith Ich denke, es ist verfügbar von [SQL Server 2012] (https://msdn.microsoft.com/en-us/library/hh213398 (v = sql.110) .aspx);). –