sql cast Stunde von datetime-ohne dropping führende null bei einstelligen Stunden
CAST(DATEPART(hh, timestamp) AS varchar(2)) + ':00' AS Hour
Dieser wird mir die Stunde aus einem timestamp-Feld, aber im Fall der Stunden 0-9 ist es nicht pad führende null und daher, wenn ich Sortieren nach Stunden absteigend, ist es nicht richtig sortiert.
Nicht sicher, was ist hier falsch. Ich geben Sie einen 2 char varchar-erlauben extra Raum für die führende null. Hoffentlich gibt es eine Möglichkeit dieses Problem zu beheben, ohne mein Feld durch eine Funktion, die den pad-die führende null für mich.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Will nicht pad mit 0EN? OK, Sie können es tun, eine ähnlich hässliche Art und Weise, ohne die Polsterung Durcheinander:
Offensichtlich ersetzen
GETDATE()
mit Ihrer Spalte. Was ich hoffe ist nicht wirklichtimestamp
denn dies ist ein reserviertes Wort für ein Daten-Typ, der nichts zu tun hat mit Datum oder Zeit, leider.Wenn Sie nicht wie einer von den beiden Lösungen, dann wählen Sie einfach die Daten aus SQL Server und lassen Sie Ihre client-Anwendung Griff Formatierung/Darstellung von details. Sicherlich ist dies einfach zu tun mit C#'s
format()
Funktion, zum Beispiel.TIME
Daten geben.timestamp
irreführend, siehe connect.microsoft.com/SQLServer/feedback/details/274333Vorausgesetzt, timestamp eine Spalte in der Tabelle
Alternative
Edit:
Nach der Prüfung ein wenig kam ich zu dem Schluss, dass dies der Schnellste Weg, (fast die Leistung und die syntax als Aaron Lösung)
Können Sie die ZEIT geben, die 24 Stunden standardmäßig;