SET DATEFORMAT (Transact-SQL)

Gilt für:SQL ServerAzure SQL-DatenbankVerwaltete Azure SQL-InstanzAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL-Analyseendpunkt in Microsoft FabricLagerhaus in Microsoft FabricSQL-Datenbank in Microsoft Fabric

Legt die Reihenfolge für die Datumsteile Monat, Tag und Jahr für die Interpretation von Zeichenfolgen für das Datum fest. Diese Zeichenfolgen können folgende Typen aufweisen: date, smalldatetime, datetime, datetime2 oder datetimeoffset.

Eine Übersicht über alle Datums- und Uhrzeitdatentypen und zugehörigen Funktionen für Transact-SQL finden Sie unter Datums- und Uhrzeitdatentypen und zugehörige Funktionen (Transact-SQL).

Transact-SQL-Syntaxkonventionen

Syntax

SET DATEFORMAT { format | @format_var }   

Argumente

Format | @format_var
Reihenfolge der Datumsteile. Gültige Parameter sind mdy, dmy, ymd, ydm, myd, and dym. Kann entweder in Unicode oder in Doppelbyte-Zeichensätzen (Double-Byte Character Set, DBCS), die in Unicode konvertiert wurden, dargestellt werden. Der Standard für Der Standard für Englisch ist mdy. Für den Standard DATEFORMAT aller Unterstützungssprachen siehe sp_helplanguage (Transact-SQL).

Hinweise

Der DATEFORMATYDM wird nicht für Datentypen Datum, Datum/Zeit2 und Datum-Zeit-Offset unterstützt.

Die Einstellung DATEFORMAT kann Zeichenzeichenketten für Datumsdatentypen unterschiedlich interpretieren, abhängig vom Zeichenkettenformat. Beispielsweise entsprechen die Interpretationen von datetime und smalldatetime möglicherweise nicht date, datetime2 oder datetimeoffset. DATEFORMAT beeinflusst die Interpretation von Zeichenzeichenketten, während sie in Datumswerte für die Datenbank umgewandelt werden. Es wirkt sich nicht auf die Anzeige der Werte von Datumsdatentypen und deren Speicherformat in der Datenbank aus.

Einige Zeichenstring-Formate, zum Beispiel ISO 8601, werden unabhängig von der Einstellung DATEFORMAT interpretiert.

Die Einstellung wird SET DATEFORMAT zur Ausführung oder Laufzeit und nicht zur Analysezeit festgelegt.

SET DATEFORMAT überschreibt die implizite Datumsformateinstellung von SET LANGUAGE.

Berechtigungen

Erfordert die Mitgliedschaft in der public -Rolle.

Beispiele

Im folgenden Beispiel werden andere Datumszeichenfolgen als Eingaben in Sitzungen mit derselben DATEFORMAT-Einstellung verwendet.

-- Set date format to day/month/year.  
SET DATEFORMAT dmy;  
GO  
DECLARE @datevar DATETIME2 = '31/12/2008 09:01:01.1234567';  
SELECT @datevar;  
GO  
-- Result: 2008-12-31 09:01:01.123  
SET DATEFORMAT dmy;  
GO  
DECLARE @datevar DATETIME2 = '12/31/2008 09:01:01.1234567';  
SELECT @datevar;  
GO  
-- Result: Msg 241: Conversion failed when converting date and/or time -- from character string.  
  
GO  

Siehe auch

SET Anweisungen (Transact-SQL)