Obtenir la date d'il y a 3 jours

J'ai un script SQL qui sélectionne tout depuis le jour actuel.

SELECT [ClientID] from [logs] where Date > CONVERT (date, SYSDATETIME()) 

Date est le type de DateTime.

Comment get tout dans les 3 derniers jours? Je suppose que j'ai besoin de soustraire 3 jours du résultat de la fonction SYSDATETIME() , mais comment?

 SELECT [ClientID] from [logs] where Date > DATEADD(day, -3, CONVERT (date, SYSDATETIME())) 

Pour mysql, utilisez ceci:

 SELECT DATE_ADD(CURRENT_DATE, INTERVAL - 3 DAY); 

Utilisez entre

 SELECT ClientID FROM logs WHERE Date BETWEEN SYSDATETIME() AND SYSDATETIME() - 3 

Utilisez GETDATE() : Oui, il obtient la date du système!

Renvoie l'horodatage du système de database en cours en tant que valeur de date / heure sans le décalage de timezone de la database. Cette valeur est dérivée du operating system de l'ordinateur sur lequel l'instance de SQL Server est en cours d'exécution.

Question:

 SELECT [ClientID] from [logs] where ( Date > GETDATE() - 3) 

Plus de reference:

GETDATE Documentation détaillée

Utiliser BETWEEN est sympa. Je préfère aussi la fonction DATEADD. Mais soyez conscient du fait que la fonction SYSDATETIME (ou je voudrais nous GETDATE ()) inclut également le time qui signifierait que les events avant l'heure actuelle mais dans la période de trois jours ne peuvent pas être inclus. Vous devrez peut-être convertir les deux côtés en une date au lieu de datetime.

 SELECT [ClientID] from [logs] where Date > DATEADD(day, -3, SYSDATETIME())