2010-01-04 5 views
4

J'espère que n'importe qui peut traduire ma requête abstraite.sql compare datetime aujourd'hui

Je veux sélectionner * dans TABLE où ([MYDATETIMEROW] < (AUJOURD'HUI - 3 Jours)).

Dois-je convertir, lancer ou utiliser datepart ou toute autre chose? .. im confused.

Existe-t-il des règles simples? Je n'aurais pas de problèmes pour faire ça avec linq mais simple sql j'ai appris à peine.

Merci et meilleures salutations.

Répondre

7

En termes simples:

Select * from Table where MyDateTimeRow < dateadd(dd,-3,getdate()) 

Mais en utilisant getdate() fournira à la fois une date et une fois, l'expérience indique qu'il est peu probable que ce soit exactement ce que vous voulez - vous pourriez vouloir réduire le temps et considérer simplement la partie de date

Select * From Table where MyDateTimeRow < dateadd(dd, datediff(dd, 0, getdate()) - 3, 0) 
+0

thx qui a fonctionné. –

2

Vous voulez que la fonction DateAdd manipuler les dates et la fonction GetDate pour obtenir la date actuelle:

SELECT * FROM MyTable WHERE [MyDateTimeRow] < DateAdd(dd, -3, GetDate())