Ich suche eine gute SQL-Anweisung, um alle Zeilen des Vortages aus einer Tabelle auszuwählen. Die Tabelle enthält eine Datums- / Uhrzeitspalte. Ich verwende SQL Server 2005.
sql
sql-server
sql-server-2005
Rudimenter
quelle
quelle
SELECT *
Daten werden jedoch mit ihren ursprünglichen Zeiten zurückgegeben.SELECT getdate(),dateadd(day,datediff(day,1,GETDATE()),0)
bekomme ich:2016-02-01 10:27:54.733 2016-01-31 00:00:00.000
So erhalten Sie den "Heute" -Wert in SQL:
Um "gestern" zu bekommen:
Um "heute minus X Tage" zu erhalten: Ändern Sie -1 in -X.
Für alle Zeilen von gestern erhalten Sie also:
quelle
Es scheint, dass die offensichtliche Antwort fehlte. Um alle Daten aus einer Tabelle (Ttable) abzurufen, in der die Spalte (DatetimeColumn) eine Datumszeit mit einem Zeitstempel ist, kann die folgende Abfrage verwendet werden:
Dies kann leicht auf heute, letzten Monat, letztes Jahr usw. geändert werden.
quelle
DatetimeColumn BETWEEN DATEADD(day, DATEDIFF(day, 1, GETDATE()) ,0) AND DATEADD(day, DATEDIFF(day, 0, GETDATE()), 0)
als der DATEDIFF () in jeder Zeilequelle
Es ist ein wirklich alter Thread, aber hier ist meine Meinung dazu. Anstelle von 2 verschiedenen Klauseln, eine größer als und kleiner als. Ich verwende diese Syntax unten, um Datensätze aus einem Datum auszuwählen. Wenn Sie einen Datumsbereich wünschen, sind vorherige Antworten der richtige Weg.
Im obigen Fall ist X für die gestrigen Datensätze -1
quelle
Ich kann es momentan nicht testen, aber:
quelle
Dies sollte es tun:
quelle
Gehen Sie in SQL Server folgendermaßen vor:
Sie sollten beide Seiten des Ausdrucks auf den neuesten Stand bringen, um Probleme mit der Zeitformatierung zu vermeiden.
Wenn Sie das Intervall genauer steuern müssen, sollten Sie Folgendes ausprobieren:
quelle
Eine andere Möglichkeit, es "Gestern" zu sagen ...
Dies funktioniert möglicherweise nicht gut am 1. Januar sowie am ersten Tag eines jeden Monats. Aber im laufenden Betrieb ist es effektiv.
quelle
Nun, es ist einfacher, die datetime-Spalte auf den neuesten Stand zu bringen und zu vergleichen.
quelle
subdate (now (), 1) gibt den Zeitstempel von gestern zurück. Der folgende Code wählt alle Zeilen mit dem gestrigen Zeitstempel aus
quelle