PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

So wählen Sie Datensätze aus den letzten 24 Stunden mit PostgreSQL aus

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!