SÄTT DATUMFORMAT (Transact-SQL)

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalysplattformssystem (PDW)SQL-analysslutpunkt i Microsoft FabricLager i Microsoft FabricSQL-databas i Microsoft Fabric

Sätter ordningen på månad, dag och år för att tolka datumteckensträngar. Dessa strängar är av typen date, smalldatetime, datetime, datetime2 eller datetimeoffset.

En översikt över alla datatyper och funktioner för datum och tid Transact-SQL finns i Datatyper och funktioner för datum och tid (Transact-SQL).

Transact-SQL syntaxkonventioner

Syntax

SET DATEFORMAT { format | @format_var }   

Arguments

format | @format_var
Är ordningen på datumdelarna. Giltiga parametrar är mdy, dmy, ymd,ydm, myd och dym. Kan antingen konverteras till Unicode eller dubbelbyteteckenuppsättningar (DBCS) till Unicode. Den amerikanska engelska standarden är mdy. För standardformatet DATEFORMAT för alla stödspråk, se sp_helplanguage (Transact-SQL).

Anmärkningar

DATEFORMAT ydm stöds inte för datatyper av datum, datetime2 och datetimeoffset .

DATEFORMAT-inställningen kan tolka teckensträngar olika för datumdatatyper, beroende på deras strängformat. Till exempel kan datetime- och smalldatetime-tolkningar inte stämma överens med date, datetime2 eller datetimeoffset. DATEFORMAT påverkar tolkningen av teckensträngar när de konverteras till datumvärden för databasen. Det påverkar inte visningen av datumdatatypvärden eller deras lagringsformat i databasen.

Vissa teckensträngsformat, till exempel ISO 8601, tolkas oberoende av DATEFORMAT-inställningen.

Inställningen av SET DATEFORMAT ställs in vid exekverings- eller körningstid och inte vid parsetid.

SET DATEFORMAT åsidosätter den implicita datumformatinställningen i SET LANGUAGE.

Permissions

Kräver medlemskap i offentlig roll.

Examples

Följande exempel använder olika datumsträngar som indata i sessioner med samma DATEFORMAT inställning.

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

Se även

SET-instruktioner (Transact-SQL)