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.babaluga.com

Rudi Bruchez
Sql Server consultant and trainer, Data Platform MVP
Modélisation, administration, optimisation, audit, formation. Solutions MS SQL Server et NoSQL
Expert SQL Server avec vingt ans d’expérience, focalisation sur l’optimisation. Conseil et développement pour Cassandra et MongoDB

Modelling, administration, optimisation, audit, training, MS SQL Server and NoSQL.
MS SQL Server expert with 20 years experience. Also NoSQL solutions, mainly Cassandra and MongoDB.

http://www.babaluga.com/contact/

Utilisez les types DATE et TIME dans SQL Server