89 votes

Comment obtenir uniquement la date lors de l'utilisation de MSSQL GetDate() ?

DELETE from Table WHERE Date > GETDATE();

GETDATE() inclut l'heure. Au lieu d'obtenir

 2011-01-26 14:58:21.637

Comment puis-je avoir:

 2011-01-26 00:00:00.000

11voto

RichardTheKiwi Points 58121

Pour SQL Server 2008, le meilleur moyen d'indexation est

 DELETE from Table WHERE Date > CAST(GETDATE() as DATE);

Pour les versions antérieures de SQL Server, les calculs de date fonctionneront plus rapidement qu'une conversion en varchar. Même la conversion en varchar peut vous donner un mauvais résultat, en raison des paramètres régionaux.

 DELETE from Table WHERE Date > DATEDIFF(d, 0, GETDATE());

Remarque : il est inutile d'envelopper le DATEDIFF avec un autre DATEADD

6voto

FolksLord Points 674

C'est spécifique à la base de données. Vous n'avez pas spécifié le moteur de base de données que vous utilisez.

par exemple, dans PostgreSQL, vous transmettez (mavaleur comme date).

5voto

JohnOpincar Points 1798
SELECT CONVERT(DATETIME, CONVERT(varchar(10), GETDATE(), 101))

0voto

Vous pouvez utiliser

 DELETE from Table WHERE Date > CONVERT(VARCHAR, GETDATE(), 101);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X