Format Datum als yyyy-mm-dd hh:mm:ss.000
Habe ich dieses Datum: 7/19/2013
Möchte ich es formatieren, wie die folgenden:
2013-07-19 00:00:00.000
Habe ich versucht, dieses:
select convert(varchar(10),'7/19/2013',120)
Aber es gibt mir das gleiche Ergebnis!
I want to format it as the following: 'yyyy-mm-dd 00:00:00.000'
Sie es noch nicht bemerkt hast, dass ist mehr als Ihr varchar(10) halten kann, richtig?InformationsquelleAutor Hotlansy Httlandy | 2013-08-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie SQL Server mitteilen, es ist ein Datum; sonst, er sieht nur ein string ist, und ignoriert die style-Nummer, da es nicht relevant für einen string. Als Steve Kass wies darauf hin, der code ist nur wirklich tragbar, wenn Sie schützen die eingehende Zeichenfolge aus der falschen Region oder Sprache-basierte übersetzungen (wie
d/m/y
- das könnte zu einem Fehler führen, oder, noch schlimmer, die falsche Daten). Ich habe aktualisiert, der code interpretiert den string alsm/d/y
unabhängig von der Ländereinstellung, aber wenn Sie sind auf SQL Server 2012 können Sie auchPARSE()
wie in seinem Beispiel (oderTRY_PARSE()
wenn Sie wollen, im wesentlichen ignorieren Sie ungültige Daten).Und wenn Sie wollen, dass die Zeit angebracht einschließlich der Millisekunden, die Sie brauchen, um mehr als 10 Zeichen, und einen Stil, unterstützt von Millisekunden.
Ergebnis:
Wenn Sie kümmern sich nicht um Millisekunden, die Sie verwenden können, Stil 120 statt:
Und wenn Sie kümmern sich nicht um Sekunden, können Sie truncate früher:
danke, aktualisiert.
Siehe mein Kommentar auf @SteveKass ' s post weiter unten.
InformationsquelleAutor Aaron Bertrand
Beachten Sie, dass Aaron die Lösung fehlschlagen wird wenn der server lokalisiert ist, eine Sprache, mit der DMY als Datum formatieren. Dies ist, weil die inneren KONVERTIEREN in Aarons Beispiel integrieren die Ländereinstellung des Servers, das kann nicht sein, was Sie erwarten.
Machen diese bulletproof (vorausgesetzt, die Quelle der string nicht automatisch re-lokalisieren-format) konvertieren Sie die Zeichenfolge mit PARSE (erfordert SQL Server 2012 oder später).
105
auf die innereCONVERT
.Oops, das sollte Stil
101
, sorry.Ja, guter Punkt.
InformationsquelleAutor Steve Kass
Hinzufügen, um der Abfrage können Sie einfach fügen Sie die Nullen/die Zeichen, wie Sie wollen :)...
Ergebnis:
InformationsquelleAutor user5350676