haben durch diese Website (und andere) ausführlich gesucht, um zu versuchen und den besten Weg einzuschränken, um eine SQL-Abfrage zu erreichen, die eine Reihe von zeitgestempelten Daten zurückgibt gestern in einem 8 Stunden Schichtfenster. Einige Herausforderungen bestehen darin, dass dies in einem proprietären Datenvisualisierungstool (DG-LOGIK) programmiert wird, das einen JDBC-Konnektor zur SQL-Datenbank verwendet, so dass einige der Standard-Datetime-Funktionen nicht erkannt werden.SQL-Abfrage, um Ergebnisse auf gestern und einen bestimmten 8-Stunden-Zeitraum zu begrenzen
Die Abfrage, die ich erfolgreich an der Arbeit bekommen haben ist:
SELECT MAX(TimeOfSample) as TimeOfSample, SUM(SampleValue) as SampleValue FROM {trend_log}
WHERE TimeOfSample >= GETDATE()-1 AND (DATEPART(HOUR,TimeOfSample)>=07 AND DATEPART(HOUR,TimeOfSample)<=15)
GROUP BY
DATEPART(YEAR, TimeOfSample),
DATEPART(MONTH, TimeOfSample),
DATEPART(DAY, TimeOfSample),
DATEPART(HOUR,TimeOfSample),
(DATEPART(MINUTE,TImeOfSample)/15)
ORDER BY TimeOfSample
Herausforderung: Wenn Sie innerhalb der heutigen Zeit der Verschiebung ist heute und gestern Ergebnisse zurück. Ich habe versucht, TimeOfSample = GETDATE()-1
zu begrenzen, aber ich bekomme eine Fehlerrückkehr auf dem gleichen Vergleich. Wie kann ich diese Abfrage beschränken, um nur gestern zurückzukehren?