FORMAT ist eine der neuen eingebauten String-Funktionen, die als Teil von Sql Server 2012 eingeführt wurden. Sie gibt den Wert zurück, der im angegebenen Format mit dem optionalen Wert des Parameters culture formatiert wurde. Es handelt sich nicht um eine Sql Server native Funktion, sondern um eine .NET CLR abhängige Funktion.
SYNTAX: FORMAT ( Wert, format )
Parameter | Beschreibung |
Wert: | Wert, der formatiert werden soll |
Format: | Dieser Parameter gibt das Format an, in dem der Wert formatiert werden soll. |
Kultur: | Dieser Parameter ist optional, er legt die Kultur fest, in der der Wert formatiert wird. Wenn er nicht angegeben wird, wird die Sprache der aktuellen Sitzung verwendet. |
Rückgabewerte: Rückgabewerttyp ist nvarchar.
Beispiel 1: FORMAT DATE mit Culture
DECLARE @date DATETIME = GETDATE() SELECT @date AS 'GETDATE()', FORMAT( @date, 'd', 'en-US') AS 'DATE IN US Culture', FORMAT( @date, 'd', 'en-IN') AS 'DATE IN INDIAN Culture', FORMAT( @date, 'd', 'de-DE') AS 'DATE IN GERMAN Culture'
Ergebnis:
Beispiel 2: FORMAT CURRENCY mit Kultur
DECLARE @Price INT = 40SELECT FORMAT(@Price,'c','en-US') AS 'CURRENCY IN US Culture', FORMAT(@Price,'c','de-DE') AS 'CURRENCY IN GERMAN Culture'
Ergebnis:
Beispiel 3: FORMAT CURRENCY
DECLARE @Price DECIMAL(5,3) = 40.356SELECT FORMAT( @Price, 'C') AS 'Default', FORMAT( @Price, 'C0') AS 'With 0 Decimal', FORMAT( @Price, 'C1') AS 'With 1 Decimal', FORMAT( @Price, 'C2') AS 'With 2 Decimal', FORMAT( @Price, 'C3') AS 'With 3 Decimal'
Ergebnis:
Beispiel 4: FORMAT PERCENTAGE
DECLARE @Percentage float = 0.35674SELECT FORMAT( @Percentage, 'P') AS '% Default', FORMAT( @Percentage, 'P0') AS '% With 0 Decimal', FORMAT( @Percentage, 'P1') AS '% with 1 Decimal', FORMAT( @Percentage, 'P2') AS '% with 2 Decimal', FORMAT( @Percentage, 'P3') AS '% with 3 Decimal'
Ergebnis:
Beispiel 5: FORMAT ZIFFER
DECLARE @Number AS DECIMAL(10,2) = 454545.389SELECT FORMAT( @Number, 'N','en-US') AS 'Number Format in US', FORMAT( @Number, 'N','en-IN') AS 'Number Format in INDIA'SELECT FORMAT( @Number, '#.0') AS 'With 1 Decimal', FORMAT( @Number, '#.00') AS 'With 2 Decimal', FORMAT( @Number, '#,##.00') AS 'With Comma and 2 Decimal', FORMAT( @Number, '##.00') AS 'Without Comma and 2 Decimal'
Ergebnis:
Beispiel 6: CUSTOM DATE FORMATS
DECLARE @date DATETIME = GETDATE() SELECT @date AS 'GETDATE()', FORMAT ( @date, 'dd/MM/yyyy') AS 'dd/MM/yyyy', FORMAT ( @date, 'MM/dd/yyyy') AS 'MM/dd/yyyy', FORMAT ( @date, 'yyyy/MM/dd') AS 'yyyy/MM/dd' SELECT FORMAT( @date,'dddd, MMMM dd, yyyy hh:mm:ss tt','en-US') AS 'US', FORMAT( @date,'dddd, MMMM dd, yyyy hh:mm:ss tt','hi-IN') AS 'Hindi', FORMAT( @date,'dddd, MMMM dd, yyyy hh:mm:ss tt','kn-IN') AS 'Kannada'
Ergebnis:
DECLARE @date DATETIME = GETDATE()SELECT FORMAT ( @date, 'dd', 'en-US' ) AS 'US',FORMAT ( @date, 'ddd', 'en-US' ) AS 'US',FORMAT ( @date, 'dddd', 'en-US' ) AS 'US',FORMAT ( @date, 'dddd', 'kn-IN' ) AS 'Kannada',FORMAT ( @date, 'dddd', 'hi-IN' ) AS 'Hindi'SELECT FORMAT ( @date, 'M', 'en-US' ) AS 'US',FORMAT ( @date, 'MM', 'en-US' ) AS 'US',FORMAT ( @date, 'MMM', 'en-US' ) AS 'US',FORMAT ( @date, 'MMMM', 'en-US' ) AS 'US',FORMAT ( @date, 'MMMM', 'kn-IN' ) AS 'Kannada',FORMAT ( @date, 'MMMM', 'hi-IN' ) AS 'Hindi'SELECT FORMAT ( @date, 'y', 'en-US' ) AS 'US', FORMAT ( @date, 'y', 'kn-IN' ) AS 'Kannada', FORMAT ( @date, 'y', 'hi-IN' ) AS 'Hindi', FORMAT ( @date, 'yy', 'en-US' ) AS 'US', FORMAT ( @date, 'yyy', 'en-US' ) AS 'US'
Ergebnis:
Beispiel 7: Ungültige Kultur
DECLARE @date DATETIME = GETDATE()SELECT FORMAT(@date,'d','Test') AS 'Invalid Culture'
Ergebnis:
Msg 9818, Level 16, State 1, Line 2
Der im Funktionsaufruf angegebene Kulturparameter ‚Test‘ wird nicht unterstützt.
Die folgenden neuen eingebauten Funktionen, die in Sql Server 2012 eingeführt wurden, können Sie lesen:
Neue eingebaute Funktionen in Sql Server eingeführt | |
KONVERSIONSFUNKTIONEN | |
PARSE | TRY_PARSE |
TRY_CONVERT | |
STRING FUNCTIONS | |
CONCAT | FORMAT |
LOGICAL FUNCTIONS | |
WÄHLEN | IIF |
DATUM UND UHRZEIT FUNKTIONEN | |
MONAT | |
DATUMSFUNKTIONEN | DATUMSFUNKTIONEN |
SMALLDATETIMEFROMPARTS | DATETIME2FROMPARTS |
TIMEFROMPARTS | DATETIMEOFFSETFROMPARTS |