Manchmal müssen Sie möglicherweise Aufzeichnungen aus den letzten 24 Stunden abrufen oder Zeilen aus den letzten 24 Stunden für Berichte und Analysen auswählen. So wählen Sie Datensätze der letzten 24 Stunden mit PostgreSQL aus.
Datensätze der letzten 24 Stunden in PostgreSQL abrufen
Hier ist die SQL-Abfrage, um Datensätze der letzten 24 Stunden in PostgreSQL abzurufen. Nehmen wir an, Sie haben die folgende Tabelle sales(order_date, amount) .
postgres-# create table sales(order_date timestamp, amount int); postgres-# insert into sales(order_date,amount) values('2020-06-07 01:00:00',200), ('2020-06-07 02:30:00',350), ('2020-06-07 04:40:00',410), ('2020-06-07 12:10:00',600), ('2020-06-07 15:00:00',300), ('2020-06-07 18:55:00',450), ('2020-06-07 21:00:00',1200), ('2020-06-08 03:00:00',800), ('2020-06-08 05:30:00',900), ('2020-06-08 07:20:00',100), ('2020-06-08 10:10:00',250), ('2020-06-08 12:05:00',300), ('2020-06-08 13:30:00',200); postgres-# select * from sales; +---------------------+--------+ | order_date | amount | +---------------------+--------+ | 2020-06-07 01:00:00 | 200 | | 2020-06-07 02:30:00 | 350 | | 2020-06-07 04:40:00 | 410 | | 2020-06-07 12:10:00 | 600 | | 2020-06-07 15:00:00 | 300 | | 2020-06-07 18:55:00 | 450 | | 2020-06-07 21:00:00 | 1200 | | 2020-06-08 03:00:00 | 800 | | 2020-06-08 05:30:00 | 900 | | 2020-06-08 07:20:00 | 100 | | 2020-06-08 10:10:00 | 250 | | 2020-06-08 12:05:00 | 300 | | 2020-06-08 13:30:00 | 200 | +---------------------+--------+
Bonuslektüre:So erhöhen Sie die maximale Anzahl von Verbindungen in PostgreSQL
Zeilen der letzten 24 Stunden in PostgreSQL abrufen
Hier ist die SQL-Abfrage, um Datensätze der letzten 24 Stunden in PostgreSQL abzurufen.
postgres-# select * from sales where order_date > now() - interval '24 hours'; +---------------------+--------+ | order_date | amount | +---------------------+--------+ | 2020-06-07 15:00:00 | 300 | | 2020-06-07 18:55:00 | 450 | | 2020-06-07 21:00:00 | 1200 | | 2020-06-08 03:00:00 | 800 | | 2020-06-08 05:30:00 | 900 | | 2020-06-08 07:20:00 | 100 | | 2020-06-08 10:10:00 | 250 | | 2020-06-08 12:05:00 | 300 | | 2020-06-08 13:30:00 | 200 | +---------------------+--------+
In der obigen SQL-Abfrage verwenden wir die PostgreSQL-Systemfunktion now() um die aktuelle Datumszeit zu erhalten. Dann verwenden wir die INTERVAL-Klausel, um die Zeilen auszuwählen, in denen order_date fällt in die letzten 24 Stunden der aktuellen Datumszeit.
Bonuslektüre:Tipps zur Leistungsoptimierung von PostgreSQL
Sie können das Zeitintervall auch in Tagen statt in Stunden angeben.
postgres-# select * from sales where order_date > now() - interval '1 day'; +---------------------+--------+ | order_date | amount | +---------------------+--------+ | 2020-06-07 15:00:00 | 300 | | 2020-06-07 18:55:00 | 450 | | 2020-06-07 21:00:00 | 1200 | | 2020-06-08 03:00:00 | 800 | | 2020-06-08 05:30:00 | 900 | | 2020-06-08 07:20:00 | 100 | | 2020-06-08 10:10:00 | 250 | | 2020-06-08 12:05:00 | 300 | | 2020-06-08 13:30:00 | 200 | +---------------------+--------+
Bonus-Lesung:Top 5 der PostgreSQL-Abfrageüberwachungstools
Wenn Sie Datensätze nur für den heutigen Tag und nicht für die letzten 24 Stunden auswählen möchten, verwenden Sie die folgende Abfrage.
postgres-# select * from sales where date_trunc('date',order_date) = current_date; +---------------------+--------+ | order_date | amount | +---------------------+--------+ | 2020-06-08 03:00:00 | 800 | | 2020-06-08 05:30:00 | 900 | | 2020-06-08 07:20:00 | 100 | | 2020-06-08 10:10:00 | 250 | | 2020-06-08 12:05:00 | 300 | | 2020-06-08 13:30:00 | 200 | +---------------------+--------+
In der obigen Abfrage erhalten Sie nur Zeilen mit dem aktuellen Datum und nicht nach 24 Stunden. Wir verwenden die Funktion DATE_TRUNCT, um nur die Zeilen auszuwählen, in denen der Datumswert von order_date mit dem Datumswert der Systemvariablen CURRENT_DATE übereinstimmt, d. h. das aktuelle Datum.
Ubiq macht es einfach, Daten innerhalb von Minuten zu visualisieren und in Echtzeit-Dashboards zu überwachen. Probieren Sie es noch heute aus!