SET DATEFORMAT (Transact-SQL)

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Analytics-eindpunt in Microsoft FabricMagazijn in Microsoft FabricSQL-database in Microsoft Fabric

Stelt de volgorde vast van de maand-, dag- en jaardatumdelen voor het interpreteren van datumtekenreeksen. Deze strings zijn van het type date, smalldatetime, datetime, datetime2 of datetimeoffset.

Zie datum- en tijdgegevenstypen en -functies (Transact-SQL)voor een overzicht van alle Transact-SQL datum- en tijdgegevenstypen en -functies.

Transact-SQL syntaxis-conventies

Syntaxis

SET DATEFORMAT { format | @format_var }   

Arguments

formatteren | @format_var
Is de volgorde van de datumonderdelen. Geldige parameters zijn mdy, dmy, ymd, ydm, myd en dym. Kan zowel Unicode- als double-byte character sets (DBCS) zijn omgezet naar Unicode. De standaard in het Amerikaanse Engels is mdy. Voor de standaard DATEFORMAT van alle ondersteuningstalen, zie sp_helplanguage (Transact-SQL).

Opmerkingen

De DATEFORMATydm wordt niet ondersteund voor datatypes date, datetime2 en datetimeoffset .

De DATEFORMAT instelling kan tekenreeksen verschillend interpreteren voor datumgegevenstypen, afhankelijk van het formaat van hun string. Bijvoorbeeld, datetime - en smalldatetime-interpretaties kunnen niet overeenkomen met date, datetime2 of datetimeoffset. DATEFORMAT beïnvloedt de interpretatie van tekenreeksen terwijl ze worden omgezet naar datumwaarden voor de database. Het beïnvloedt de weergave van de datatypewaarden niet, noch het opslagformaat in de database.

Sommige tekenstringformaten, bijvoorbeeld ISO 8601, worden onafhankelijk van de DATEFORMAT instelling geïnterpreteerd.

De instelling van SET DATEFORMAT wordt ingesteld bij uitvoering of uitvoeringstijd en niet op parseringstijd.

SET DATEFORMAT overschrijft de impliciete datumformaatinstelling van SET LANGUAGE.

Permissions

Vereist lidmaatschap van de openbare rol.

Voorbeelden

Het volgende voorbeeld gebruikt verschillende datumreeksen als input in sessies met dezelfde DATEFORMAT setting.

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

Zie ook

SET Instructies (Transact-SQL)