Das wird mir die Stunde aus einem Zeitstempelfeld holen, aber im Fall der Stunden 0-9 wird keine führende Null aufgefüllt, und daher sortiere ich nicht nach Stunden, wenn ich nach Stunden sortiere.
Ich bin mir nicht sicher, was hier falsch ist. Ich gebe ein 2 char varchar an, um zusätzlichen Platz für die führende Null zu ermöglichen. Hoffentlich gibt es eine Möglichkeit, dies zu beheben, ohne mein Feld durch eine Funktion zu führen, die die führende Null für mich auffüllen wird.
Ich möchte nicht mit 0s padeln? OK, Sie können es auf eine ähnlich hässliche Art und Weise ohne das Padding Chaos machen:
%Vor% Offensichtlich ersetzen Sie GETDATE()
durch Ihren Spaltennamen. Was hoffentlich nicht wirklich timestamp
ist, denn das ist ein reserviertes Wort - für einen Datentyp, der leider mit Datum oder Uhrzeit nichts zu tun hat.
Wenn Ihnen eine dieser Lösungen nicht gefällt, wählen Sie einfach die Daten aus SQL Server aus, und lassen Sie Ihre Clientanwendung Formatierungs- / Präsentationsdetails verarbeiten. Das ist zum Beispiel mit der Funktion format()
von C # ganz einfach möglich.
Angenommen, der Zeitstempel ist eine Spalte in Ihrer Tabelle
%Vor%Alternative
%Vor%Bearbeiten:
Nachdem ich ein bisschen getestet habe, bin ich zu dem Schluss gekommen, dass dies der schnellste Weg ist (fast die Performance und Syntax wie Aarons Lösung)
%Vor%Tags und Links sql sql-server tsql sql-server-2008-r2