Articles

SqlHints.com

Posted on

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:

FORMAT_FUNCTION_IN_SQL_SERVER_2012_1

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:

FORMAT_FUNCTION_IN_SQL_SERVER_2012_2

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:
FORMAT_FUNKTION_IN_SQL_SERVER_2012_3

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:
FORMAT_FUNKTION_IN_SQL_SERVER_2012_4

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:
FORMAT_FUNCTION_IN_SQL_SERVER_2012_5

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:

FORMAT_FUNCTION_IN_SQL_SERVER_2012_6

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:

FORMAT_FUNCTION_IN_SQL_SERVER_2012_7

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

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.