sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur man väljer poster från de senaste 24 timmarna med PostgreSQL

Ibland kan du behöva hämta poster från de senaste 24 timmarna eller välja rader från de senaste 24 timmarna för rapportering och analys. Så här väljer du poster från de senaste 24 timmarna med PostgreSQL.


Hämta poster från de senaste 24 timmarna i PostgreSQL

Här är SQL-frågan för att hämta poster från de senaste 24 timmarna i PostgreSQL. Låt oss säga att du har följande tabell försäljning(orderdatum, belopp) .

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 |
+---------------------+--------+

Bonusläs:Hur man ökar maximala anslutningar i PostgreSQL


Hämta rader från de senaste 24 timmarna i PostgreSQL

Här är SQL-frågan för att hämta poster från de senaste 24 timmarna i PostgreSQL.

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 |
+---------------------+--------+

I SQL-frågan ovan använder vi PostgreSQL-systemfunktionen now() för att få aktuell datumtid. Sedan använder vi INTERVAL-satsen för att välja de rader där order_date faller inom de senaste 24 timmarna från nuvarande datum och tid.

Bonus Läs:PostgreSQL Performance Tuning Tips

Du kan också ange tidsintervall i dagar istället för timmar.

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 |
+---------------------+--------+

Bonusläsning:Topp 5 PostgreSQL-frågeövervakningsverktyg

Om du bara vill välja poster för den nuvarande dagen och inte för de senaste 24 timmarna, använd följande fråga.

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 |
+---------------------+--------+

I ovanstående fråga får du rader endast aktuellt datum och inte efter 24 timmar. Vi använder funktionen DATE_TRUNCT för att bara välja de rader där datumvärdet för order_date är samma som datumvärdet för CURRENT_DATE systemvariabeln, det vill säga nuvarande datum.

Ubiq gör det enkelt att visualisera data på några minuter och övervaka i realtidsinstrumentpaneler. Prova det idag!

  1. Mäter du SQL Server-prestanda med dessa mätvärden?

  2. Hur ansluter man till mssql med pdo via PHP och Linux?

  3. Hur UTOM Fungerar i SQL Server

  4. Bygga och underhålla en HR-databas