SET DATEFORMAT (Transact-SQL)

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Point de terminaison d’analytique SQL dans Microsoft FabricEntrepôt dans Microsoft FabricBase de données SQL dans Microsoft Fabric

Définit le classement des parties de date mois, jour et année pour interpréter les chaînes de caractères de date. Ces chaînes sont de type date, smalldatetime, datetime, datetime2 ou datetimeoffset.

Pour obtenir une vue d’ensemble de tous les types de données et fonctions de date et d’heure Transact-SQL, consultez Types de données et fonctions de date et d’heure (Transact-SQL).

Conventions de la syntaxe Transact-SQL

Syntaxe

SET DATEFORMAT { format | @format_var }   

Arguments

Format | @format_var
Ordre des parties de la date. Les paramètres valides sont mdy, dmy, ymd, ydm, myd et dym. Il peut s'agir du format Unicode ou d'un jeu de caractères codés sur deux octets (DBCS) converti en Unicode. La valeur par défaut pour l’anglais des États-Unis est mdy. Pour la référence par défaut DATEFORMAT de tous les langages de support, voir sp_helplanguage (Transact-SQL).

Remarques

Le DATEFORMATydm n’est pas pris en charge pour les types de données date, datetime2 et datetimeoffset .

Le DATEFORMAT paramètre peut interpréter les chaînes de caractères différemment selon les types de données de dates, selon leur format de chaînes. Par exemple, les interprétations datetime et smalldatetime peuvent ne pas correspondre à date, datetime2 ou datetimeoffset. DATEFORMAT cela affecte l’interprétation des chaînes de caractères lorsqu’elles sont converties en valeurs de date pour la base de données. Il n’affecte pas l’affichage des valeurs du type de données Date ni leur format de stockage dans la base de données.

Certains formats de chaînes de caractères, par exemple ISO 8601, sont interprétés indépendamment du DATEFORMAT réglage.

Le paramètre est défini au moment de SET DATEFORMAT l’exécution ou de l’exécution et non au moment de l’analyse.

SET DATEFORMAT Supprime le réglage implicite du format de date de SET LANGUAGE.

Autorisations

Nécessite l'appartenance au rôle public .

Exemples

L'exemple suivant utilise différentes chaînes de date comme entrées dans les sessions avec le même paramètre DATEFORMAT.

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

Voir aussi

SET Instructions (Transact-SQL)