2012-06-19 11 views
6

Ich fand ein paar Beispiele online, aber ich verstehe nicht ganz, wie es funktioniert. z. B.Finden Sie den vorherigen Sonntag Datum Algorithmus

 SELECT DATEADD(ww, DATEDIFF(ww,0,GETDATE()), 0) 

Ich bin nicht einmal sicher, es tut was ich will.

Was ich brauche ist, wenn die Abfrage ausgeführt wird, kann es SELECT * from xTable WHERE xDate ist zwischen zwei Daten. Letzter Sonntag und nächster Sonntag (aktuelle Woche). Was könnte ich verwenden, um es automatisch zu finden? Und erklären Sie bitte, weil ich neu in SQL bin.

+4

Ich verstehe nicht, warum jemand für das Schließen als _ "keine echte Frage" _ abstimmen konnte. Es ist klar, was OP wissen möchte: wie man die Aufzeichnungen der aktuellen Woche bekommt. Aber die Frage ist, haben Sie die Abfrage versucht und es hat das falsche Ergebnis zurückgegeben? –

+0

Es gibt tatsächlich ein Datum zurück, das ich nicht ganz finden kann, wie diese Abfrage verwendet wird, um zu meinem Ergebnis zu gelangen. – phadaphunk

Antwort

4

Ich sah tiefer bei dem Versuch, diese Abfrage

SELECT DATEADD(ww, DATEDIFF(ww,0,GETDATE()), 0) 

und benutzte es, zu verstehen, den vorherigen Montag bis retreive. Jetzt kann ich einfach DATEADD noch 6 Tage eine volle Woche bekommen.

Die Lösung, die ich verwendet:

 Set @Monday = DATEADD(ww, DATEDIFF(ww,0,GETDATE()), 0) 
     Set @Sunday = DATEADD(dd, 06, @Monday) 

gelöst Problem.

+0

Wenn Sie keine Zukunftstermine in Ihrer Tabelle haben, ist dies der effizienteste Weg: 'SELECT * from xTable WHERE xDate> = DATEADD (ww, DATEDIFF (ww, 0, GETDATE()), 0)'. Wenn Sie auch die zukünftigen Daten (mehr als eine Woche) einschränken möchten: 'SELECT * from xTable WHERE xDate> = DATEADD (ww, DATEDIFF (ww, 0, GETDATE()), 0) UND xDate

+0

Es ist für einen Bericht vergessen zu erwähnen. Wenn also jemand einen Bericht von vor zwei Monaten nachdrucken möchte, wird es einige Zukunftstermine geben. Aber ich habe es ausprobiert und es funktioniert perfekt, wenn es nicht für die Zukunft Termine Problem ist. Vielen Dank:) – phadaphunk

Verwandte Themen