SQL: Abrufen von Datensätzen, die im Zeitbereich für bestimmte Daten erstellt wurden

8

Ich habe eine Reihe von Datensätzen, die letzte Woche erstellt wurden, und von denen ich nur diejenigen abrufen möchte, die zwischen 6:45 und 19:15 Uhr erstellt wurden. Ich habe eine Spalte creation_date , die ich verwenden kann.

Wie kann ich das in SQL machen?

    
Mouna Cheikhna 05.03.2012, 15:00
quelle

3 Antworten

13

In Oracle können wir Daten in Zahlen umwandeln und sie auf verschiedene Arten anwenden.

Zum Beispiel gibt sysdate-7 uns das Datum vor sieben Tagen. trunc(some_date) entfernt das Zeitelement aus einer Datumsspalte. Und to_char(some_date, 'SSSSS') gibt uns sein Zeitelement als Anzahl der Sekunden seit Mitternacht. So 06:45:00 ist 24300 Sekunden und 18:15:59 ist 69359 Sekunden (bitte überprüfen Sie diese Zahlen, da sie Back-of-Envelope-Figur sind).

Wie auch immer, alles zusammen in einer einzigen Abfrage wie folgt ...

%Vor%

... erzeugt alle in der letzten Woche erstellten Datensätze mit einem Zeitelement innerhalb der Kernstunden.

    
APC 05.03.2012, 15:59
quelle
3

Diese Abfrage gibt alle Datensätze zurück, die in den letzten sieben Tagen mit dem Zeitabschnitt ihres Erstellungsdatums zwischen 6:45 und 19:15 erstellt wurden.

%Vor%     
Doug Porter 05.03.2012 15:59
quelle
0

Basierend auf den oben genannten Kriterien, werden die Aufzeichnungen der letzten Woche zwischen Sonntag und Samstag in den Stunden 06:45:00 und 19:15:59 zurückgebracht.

Sie können die "- 7" und die "+ 6" auf verschiedene Zahlen einstellen, wenn Sie möchten, dass der Wochenbereich unterschiedlich ist (wenn Ihre Woche beispielsweise Montag bis Sonntag ist).

%Vor%     
Zack Macomber 05.03.2012 15:15
quelle

Tags und Links