Verfügt SQL Server über eine Date_Format-Funktion?

8

Alles , was ich zu finden ist eine Liste von vordefinierten , DateFormatdass ich wählen kann, wie dies

Wie ich mich erinnere, können Sie in MySQL (und auch in PostgeSQL?) Ihr Datumsformat definieren:

DATE_FORMAT(now(),'&m_%Y') --for 02_2012 etc.

Hat SQL Server dasselbe? Ich sehe, dass Leute eine Funktion schreiben müssen, um so etwas zu tun. Hat sie eine eingebaute?


BEARBEITEN:

Ich habe gerade die DatePartFunktion gefunden. Es kann Monat als Zahl dauern, gibt aber immer 1 Ziffer zurück, auch wenn ich es benutze datePart(MM, getdate())

König Chan
quelle
Mögliches Duplikat von stackoverflow.com/questions/8202257/…
GSerg
1
Normalerweise sollte die Formatierung vom Client und nicht von der Datenbank übernommen werden. Wenn Sie jedoch die Datenbankausgabe formatieren müssen, hat Martin Smith bereits Optionen bereitgestellt.
JSR

Antworten:

16

Noch nicht.

Sie müssen CONVERTmit einem Stilparameter verwenden oder etwas zusammen mit DATEPARToder hacken DATENAME.

SQL Server 2012 verfügt jedoch über die FORMATFunktion, die eine Zeichenfolge im .NET Framework-Format akzeptiert

Syntax:

FORMAT ( value, format [, culture ] )

Beispiel Verwendung

SELECT FORMAT(getdate(), 'dd/MM/yyyy', 'en-US' ) 

Sie können jederzeit die CLR-Integration verwenden und eine eigene UDF erstellen, die für 2005 oder 2008 dasselbe tut.

Martin Smith
quelle
Ahhh, 2012! Na ja, ich denke, ich werde eine UDF schreiben, wie du gesagt hast. Vielen Dank
König Chan
Das wird großartig.
Gordon Bell
1
@KingChan und Martin: In Bezug auf die Verwendung von SQLCLR, um dies in SQL Server 2005/2008/2008 R2 zu erreichen, besteht immer die Möglichkeit, die kostenlose Version von SQL # herunterzuladen (deren Autor ich bin, Date_Format jedoch kostenlos ist) und dann ist keine Codierung erforderlich. Ich habe einige Beispiele für beides SQL#.Date_Formatund die in FORMATdiese SO integrierte Antwort: Gibt es eine Möglichkeit, Datumsangaben mit benutzerdefinierten Formaten in SQL Server abzurufen? :-)
Solomon Rutzky
0

Wenn Ihr Ziel einfach eine formatierte Ausgabe ist und nicht im Datetime-Datentyp verbleiben muss, ist die Verwendung von CONVERT mit einem Formatcode ein hervorragendes Werkzeug. Eine Liste der Formate und ihrer jeweiligen Codes finden Sie hier: http://msdn.microsoft.com/en-us/library/ms187928.aspx

hqrsie
quelle