SET DATEFORMAT (Transact-SQL)

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Analytics-Endpunkt in Microsoft FabricWarehouse 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 }   

Hinweis

Informationen zum Anzeigen der Transact-SQL-Syntax für SQL Server 2014 oder früher finden Sie unter Dokumentation zu früheren Versionen.

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. Die standardmäßige DATEFORMAT-Einstellung aller unterstützten Sprachen finden Sie unter sp_helplanguage (Transact-SQL).

Hinweise

Die DATEFORMAT-Option ydm wird für die Datentypen date, datetime2 und datetimeoffset nicht unterstützt.

Die Einstellung DATEFORMAT kann Zeichenfolgen für Datumsdatentypen je nach Zeichenfolgenformat anders interpretieren. Beispielsweise entsprechen die Interpretationen von datetime und smalldatetime möglicherweise nicht date, datetime2 oder datetimeoffset. DATEFORMAT wirkt sich bei der Konvertierung von Datumswerten für die Datenbank auf die Interpretation von Zeichenfolgen aus. Es wirkt sich nicht auf die Anzeige der Werte von Datumsdatentypen und deren Speicherformat in der Datenbank aus.

Einige Zeichenfolgenformate, z. B. ISO 8601, werden unabhängig von der DATEFORMAT-Einstellung interpretiert.

Die Einstellung von SET DATEFORMAT wird zur Ausführungszeit und nicht zur Analysezeit festgelegt.

SET DATEFORMAT überschreibt die implizite Einstellung für das Datumsformat 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)