Partage via


SET DATEFORMAT (Transact-SQL)

S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) SQL analytics endpoint in Microsoft Fabric Warehouse in 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 connaître le paramètre DATEFORMAT par défaut de toutes les langues prises en charge, consultez sp_helplanguage (Transact-SQL).

Remarques

Le paramètre DATEFORMAT ydm n’est pas pris en charge pour les types de données date, datetime2 et datetimeoffset.

Le paramètre DATEFORMAT peut interpréter des chaînes de caractères différemment pour les types de données de date, en fonction de leur format de chaîne. Par exemple, les interprétations datetime et smalldatetime peuvent ne pas correspondre à date, datetime2 ou datetimeoffset. Le paramètre DATEFORMAT affecte l’interprétation des chaînes de caractères quand 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 paramètre DATEFORMAT.

L'option SET DATEFORMAT est appliquée lors de l'exécution, et non pas lors de l'analyse.

SET DATEFORMAT remplace le paramètre de format de date implicite 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

Instructions SET (Transact-SQL)