2010-10-22 7 views
0

Possible en double:
90 days range using SQL serverdate de SQL varie

Je suis en train d'obtenir les comptes 90 jours avant la date d'exploitation et les comptes 90 jours après la date d'exploitation. Par exemple, ma date d'opération est le 01/04/2004. Donc, 90 jours avant le 01/04/2004 est (1/2/2004 au 31/03/2004) et 90 jours après (y compris le 01/04/2004) est le 29/06/2004.

J'utilise les scripts et les Calculons mannuellement jours suivants, ce qui est pas efficace ...

select 
site, 
count(*) as prior_counts 
from mytable 
where mydate >='1/2/2004' 
and mydate <'4/1/2004' 
group by site 


select 
site, 
count(*) as after_counts 
from mytable 
where mydate >='4/1/2004' 
and mydate <'6/30/2004' 
group by site 
+2

N'est-ce pas une copie exacte de votre question précédente? http://stackoverflow.com/questions/3993027/90-days-range-using-sql-server – LukeH

+0

Si vous postez du code ou du code XML, ** s'il vous plaît ** mettez en surbrillance ces lignes dans l'éditeur de texte et cliquez sur le "code" bouton (101 010) sur la barre d'outils de l'éditeur pour bien mettre en forme et la syntaxe le mettre en évidence! –

Répondre

0

Vous devriez regarder la fonction DATEDIFF ou équivalent si vous ne l'utilisez SQL Server.

DATEDIFF on MSDN

0

Si vous passez le paramètre de date à partir d'une application, envisager de modifier l'application pour faire le calcul de la plage de dates pour vous. En transmettant deux paramètres, vous supprimez le fardeau du calcul SQL, ce qui améliore les performances.