Sdílet prostřednictvím


NASTAVIT DATEFORMAT (Transact-SQL)

Platí pro:SQL ServerAzure SQL DatabaseSpravovaná instance Azure SQLAzure Synapse AnalyticsAnalytics Platform System (PDW)Koncový bod analýzy SQL v Microsoft FabricSklad v Microsoft FabricDatabáze SQL v Microsoft Fabric

Nastavuje pořadí měsíců, dnů a ročních částí pro interpretaci řetězců znaků dat. Tyto řetězce jsou typů date, smalldatetime, datetime, datetime2 nebo datetimeoffset.

Přehled všech datových typů a funkcí Transact-SQL data a času najdete v tématu datové typy a funkce data a času (Transact-SQL).

Transact-SQL konvence syntaxe

Syntaxe

SET DATEFORMAT { format | @format_var }   

Arguments

formát | @format_var
Je pořadí datových částí. Platné parametry jsou mdy, dmy, ymd, ydm, myd a dym. Může být převedena buď Unicode, nebo dvoubajtové znakové sady (DBCS) do Unicode. Výchozí pravidlo americké angličtiny je mdy. Pro výchozí formát DATEu všech podpůrných jazyků viz sp_helplanguage (Transact-SQL).

Poznámky

DATEFORMAT ydm není podporován pro datové typy date, datetime2 a datetimeoffset .

Nastavení DATEFORMAT může interpretovat znakové řetězce různě u datových typů v závislosti na jejich formátu řetězce. Například interpretace datetime a smalldatetime nemusí odpovídat date, datetime2 nebo datetimeoffset. DATEFORMAT ovlivňuje interpretaci řetězců znaků, když jsou převáděny na datové hodnoty pro databázi. Neovlivňuje to zobrazení datových typů ani jejich formát úložiště v databázi.

Některé formáty znakových řetězců, například ISO 8601, jsou interpretovány nezávisle na nastavení DATEFORMAT.

Nastavení SET DATEFORMAT je nastaveno při spuštění nebo běhu a nikoli při parse.

SET DATEFORMAT přepisuje implicitní nastavení formátu data v SET LANGUAGE.

Povolení

Vyžaduje členství ve veřejné roli .

Examples

Následující příklad používá různé datové řetězce jako vstupy v relacích se stejným DATEFORMAT nastavením.

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

Viz také

Příkazy SET (Transact-SQL)