SQL Server : Extraction de la partie date d'un DateTime


Vérification du format de date

Utiliser la commande DBCC USEROPTIONS pour vérifier le format de date courant (contrôler l’option dateformat) :

1
DBCC USEROPTIONS

La valeur dmy sur l’option dateformat correspond au format de date utilisé en France (du type jj/mm/yyyy).

Attention : Sur certains serveurs SQL (surtout ceux dont l’interface est en anglais), la configuration par défaut peut correspondre au format US, avec la valeur mdy, soit des dates au format mm/jj/yyyy. Ceci peut provoquer des inversions entre le mois et le jour sur des manipulation de dates !

La commande SET DATEFORMAT permet de configurer le format des dates pour la session courante :

1
SET DATEFORMAT dmy -- Format de date jour/mois/année

Récupération de la partie date

A partir de SQL Server 2008

Voici un exemple utilisant le type date, disponible depuis SQL Server 2008 et utilisant deux méthodes, CAST et CONVERT :

1
2
3
4
5
6
7
8
DECLARE @DateTimeTest AS datetime
SET @DateTimeTest = '12/05/2021 18:15:42.133'

SELECT @DateTimeTest -- 2021-05-12 18:15:42.133

SELECT CAST(@DateTimeTest AS date) -- 2021-05-12

SELECT CONVERT(date, @DateTimeTest) -- 2021-05-12

SQL Server 2005 ou version antérieure

Sur des versions plus anciennes, on peut utiliser une alternative avec DATEADD et DATEDIFF, ou utiliser CONVERT pour faire une conversion en VARCHAR :

1
2
3
4
5
6
7
8
SET DATEFORMAT dmy

DECLARE @DateTimeTest AS datetime
SET @DateTimeTest = '12/05/2021 18:15:42.133'

SELECT @DateTimeTest -- 2021-05-12 18:15:42.133

SELECT CONVERT(VARCHAR(10), @DateTimeTest, 101) -- 05/12/2021