Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

So erhalten Sie das Datum von datetime in sql

Der Grund, warum Ihre Abfrage nicht die erwartete Zeile zurückgibt, liegt darin, dass GETDATE() den Datums- und Zeitteil zum Zeitpunkt der Ausführung der Abfrage zurückgibt. Der Wert in Ihrem DateCreated Spalte stimmt nicht mit dem Zeitabschnitt überein, daher werden keine Zeilen zurückgegeben.

Es gibt verschiedene Möglichkeiten, eine Abfrage so zu erstellen, dass sie das Datum nur auf der Grundlage der Datumskomponente auswertet. Hier ist ein Beispiel:

WHERE YEAR(datecreated) = YEAR(GETDATE())
  AND MONTH(datecreated) = MONTH(GETDATE())
  AND DAY(datecreated) = DAY(GETDATE())

Die unglückliche Realität ist, dass jede Abfrage, die eine Funktion für die Spalte verwendet, bedeutet, dass ein Index, der für die Spalte vorhanden ist, nicht verwendet werden kann.