Les types de donnée DATE et TIME ont été ajoutés dans SQL Server 2008. Ils remplacent le très pénible type DATETIME. On en a marre d’utiliser des DATETIME et de devoir faire des BETWEEN quand on fait des clauses WHERE dans SQL Server. Vous savez, si vous avez un type DATETIME dans une colonne de votre table, et qu’il y a les heures qui suivent, eh bien lorsque vous voulez trouver tous les événements de la journée, vous êtes obligés de faire un BETWEEN, par exemple date d’événement BETWEEN 1er janvier 1900 à 00:00:00 et 1er janvier 1900 à 23:59:59… Bref, avec le type de donnée DATE, vous n’avez plus ce problème.
Le type de données TIME va permettre d’exprimer uniquement la partie temps, avec une précision. Si la précision est de 0, seules les secondes seront conservées, et ainsi de suite jusqu’au dixième de nanoseconde.

DECLARE @datetime DATETIME
SET @datetime = ‘20181231 23:59:59.998’
SELECT DATALENGTH(@datetime);

DECLARE @date DATE
SET @date = ‘20181231 23:59:59.999’
SELECT @date;
SELECT DATALENGTH(@date);

DECLARE @time TIME(2)
SET @time = ‘20181231 23:59:59.999’
SELECT @time;
SELECT DATALENGTH(@time);

Astuces et tutoriels SQL Server en français, pour SQL Server 2017, SQL Server 2016, et toutes versions. Par Rudi Bruchez https://www.linkedin.com/in/rudibruchez/ http://www.pachadata.com