0
Ich verwende den neuesten SQL Server. Ich habe eine Tabelle mit einer CreatedDate-Spalte. Ich muss eine Abfrage schreiben, die Daten verwendet, die plus oder minus 7 vom Datum in CreatedDate sind. Ich habe keine Ahnung, wie ich das anstellen soll. Mein Gedanke war:Datumsbereich basierend auf Spalte Datum
DECLARE @Date datetime
DECLARE @SevenBefore datetime
DECLARE @SevenAfter datetime
SET @Date = CreatedDate
SET @SevenBefore = DATEADD(day,-7,@Date)
SET @SevenAfter = DATEADD(day,7,@Date)
SELECT *
FROM <table>
WHERE <table> BETWEEN @SevenBefore AND @SevenAfter
Das Problem dabei ist, dass ich nicht „CreatedDate“ als SET @DATE verwenden, da SQL einen Fehler „Ungültige Spaltenname‚CreatedDate‘“ gibt
Jede Hilfe wäre geschätzt. Ich kann kein Datum angeben, da jedes Datum in dieser Spalte unterschiedlich sein kann.
Dank
Woher bekommen Sie das Erstellungsdatum? Wenn Sie den Spaltenwert in einer Tabelle verwenden, warum sollten Sie +/- 7 tun? Kannst du etwas dazu sagen? Ist es in einer anderen Tabelle? – JiggsJedi
Hier ist ein großartiger Ort, um anzufangen. http://spaghettidba.com/2015/04/24/how-to-post-a-t-sql-question-on-a-public-forum/ –
Sie Abfrage ergibt nicht einmal Sinn. Ist es 'SELECT * FROM
Antwort
In diesem Fall müssen Sie denken wie ein Programmierer würde stoppen und starten als Datenbank-Programmierer denken würde.
Lets Arbeit nur mit diesem zentralen Teil der Anfrage:
Nun, sagen Sie, dass die CreatedDate eine Spalte in einer Tabelle sind. In diesem Beispiel nehme ich an, dass das CreatedDate in einer anderen Tabelle als in Ihrem obigen Beispiel vorhanden ist. Zu diesem Zweck werde ich den Tafeln zwei falsche Namen geben. Die Tabelle mit dem CreatedDate, ich werde
tblCreated
anrufen, und die aus der Abfrage oben werde ich tblData aufrufen.Oben gesehen, ist es ziemlich offensichtlich, dass Sie eine ganze Tabellenzeile nicht mit einem Datum vergleichen können. In dieser Tabelle muss ein Feld vorhanden sein, das einen Datums-/Uhrzeitwert enthält. Ich werde diese Spalte
TargetDate
nennen.Blick auf diese, ist es klar, dass man immer noch zwischen den Tabellen müssen einige andere Verbände:
diese Annahmen gegeben, Ihre Frage etwas aussehen würde. Möchten Sie nur alle Datenzeilen pro Kunde basierend auf dem Erstellungsdatum haben oder möchten Sie vielleicht nur Creations, bei denen etwas daran gearbeitet wurde, wie in den Datensätzen gezeigt, oder ??. Ohne eine umfassendere Spezifikation können wir dabei jedoch nicht helfen.
Quelle
2017-05-02 18:55:37
Verwandte Themen