Format de date SQL Server

Quel format utiliser pour une date avec SQL Server ? Le format normatif bien sûr !

Le format des dates (exprimées sous forme de chaines de caractères) :

La norme SQL impose 2 formats différents pour les dates exprimées sous forme de chaines de caractères :
1) Format ISO court : AAAAMMJJ (aucun séparateur, année en premier sur 4 chiffres, puis mois sur 2 et jour sur 2).
2) Format ISO long : AAAA-MM-JJ (séparateur le tiret, année en premier sur 4 chiffres, puis mois sur 2 et jour sur 2).
Ce sont les seuls formats de date supportés quelque soit les configurations des serveurs et des sessions.
Mieux vaut donc s’en tenir exclusivement à ces deux formats.

Dans quel cas les utiliser ?

1) Format ISO court : DATETIME
2) Format ISO long : DATETIME2, DATE, DATETIMEOFFSET

Pourquoi ces différences ?

MS SQL Server essaye de respecter la norme SQL au plus près.
Le format ISO court était le format recommandé par la norme SQL jusqu’à la version SQL 2 de 1992. À cette époque SQL Server n’avait que le type DATETIME
À partir de la norme SQL de 1999, le format a changé en ISO long. Or comme les types DATETIME2, DATE, DATETIMEOFFSET ont été introduits en 2008 par SQL Server, c’est désormais sur le format ISO long que ces nouveaux types reposent.

NOTA : pour des raisons de précision, il faut éviter le type DATETIME et le convertir en DATETIME2. Le type DATETIME étant considéré comme obsolète.

D’autres formats ?

Il suffit de le préciser pour votre session par la commande SET DATEFORMAT et il spécifie l’ordre des parties de la date. Les paramètres valides sont mdy, dmy, ymd, ydm, myd et dym. Aucun séparateur particulier n’est à spécifier car tous sont ignorés. Le système prendra donc en compte uniquement les chiffres, et pour l’année, sur 2 ou 4 chiffres. La valeur pivot du siècle étant définie par la configuration du serveur (EXEC sp_configure ‘two digit year cutoff’).
La valeur par défaut de ce paramétrage de session étant celle spécifique à la « langue » de l’utilisateur. Par exemple pour un utilisateur s’étant connecté en langue française, la valeur par défaut est dmy.

Frédéric Brouard, alias SQLpro, ARCHITECTE DE DONNÉES
Expert  S.G.B.D  relationnelles   et   langage  S.Q.L
Moste  Valuable  Professionnal  Microsoft  SQL Server
Société SQLspot  :  modélisation, conseil, formation,
optimisation,  audit,  tuning,  administration  SGBDR
Enseignant: CNAM PACA, ISEN Toulon, CESI Aix en Prov.

L’entreprise SQL Spot
Le site web sur le SQL et les SGBDR

MVP Microsoft SQL Server

Laisser un commentaire