

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Abfrage mit Datum und Uhrzeit
<a name="query-examples-waf-logs-date-time"></a>

Die Beispiele in diesem Abschnitt enthalten Abfragen, die Datums- und Uhrzeitwerte verwenden.
+ [Return the timestamp field in human-readable ISO 8601 format](#waf-example-return-human-readable-timestamp)
+ [Return records from the last 24 hours](#waf-example-return-records-last-24-hours)
+ [Return records for a specified date range and IP address](#waf-example-return-records-date-range-and-ip)
+ [For a specified date range, count the number of IP addresses in five minute intervals](#waf-example-count-ip-addresses-in-date-range)
+ [Count the number of X-Forwarded-For IP in the last 10 days](#waf-example-count-x-forwarded-for-ip)

**Example – Gibt das Zeitstempelfeld im menschenlesbaren ISO-8601-Format zurück**  
Die folgende Abfrage verwendet die `from_unixtime`- und `to_iso8601`-Funktionen, um das `timestamp`-Feld im menschenlesbaren ISO 8601-Format zurückzugeben (z. B. `2019-12-13T23:40:12.000Z` statt `1576280412771`). Die Abfrage gibt auch den HTTP-Quellnamen, die Quell-ID und die Anforderung zurück.   

```
SELECT to_iso8601(from_unixtime(timestamp / 1000)) as time_ISO_8601,
       httpsourcename,
       httpsourceid,
       httprequest
FROM waf_logs
LIMIT 10;
```

**Example – Gibt Datensätze der letzten 24 Stunden zurück**  
Die folgende Abfrage verwendet einen Filter in der `WHERE`-Klausel, um den HTTP-Quellnamen, die HTTP-Quell-ID und die HTTP-Anforderungsfelder für Datensätze der letzten 24 Stunden zurückzugeben.  

```
SELECT to_iso8601(from_unixtime(timestamp/1000)) AS time_ISO_8601, 
       httpsourcename, 
       httpsourceid, 
       httprequest 
FROM waf_logs
WHERE from_unixtime(timestamp/1000) > now() - interval '1' day
LIMIT 10;
```

**Example – Gibt Datensätze für einen angegebenen Datumsbereich und eine IP-Adresse zurück**  
Die folgende Abfrage listet die Datensätze in einem angegebenen Datumsbereich für eine angegebene Client-IP-Adresse auf.  

```
SELECT * 
FROM waf_logs 
WHERE httprequest.clientip='53.21.198.66' AND "date" >= '2021/03/01' AND "date" < '2021/03/31'
```

**Example – Zählt Sie für einen angegebenen Datumsbereich die Anzahl der IP-Adressen in 5-Minuten-Intervallen**  
Die folgende Abfrage zählt für einen bestimmten Datumsbereich die Anzahl der IP-Adressen in fünf Minuten Intervallen.  

```
WITH test_dataset AS 
  (SELECT 
     format_datetime(from_unixtime((timestamp/1000) - ((minute(from_unixtime(timestamp / 1000))%5) * 60)),'yyyy-MM-dd HH:mm') AS five_minutes_ts,
     "httprequest"."clientip" 
     FROM waf_logs 
     WHERE "date" >= '2021/03/01' AND "date" < '2021/03/31')
SELECT five_minutes_ts,"clientip",count(*) ip_count 
FROM test_dataset 
GROUP BY five_minutes_ts,"clientip"
```

**Example — Zählen Sie die Anzahl der X-Forwarded-For IP-Adressen in den letzten 10 Tagen**  
Die folgende Abfrage filtert die Anforderungsheader und zählt die Anzahl der X-Forwarded-For IP-Adressen in den letzten 10 Tagen.  

```
WITH test_dataset AS
  (SELECT header
   FROM waf_logs
   CROSS JOIN UNNEST (httprequest.headers) AS t(header)
   WHERE from_unixtime("timestamp"/1000) > now() - interval '10' DAY) 
SELECT header.value AS ip,
       count(*) AS COUNT 
FROM test_dataset 
WHERE header.name='X-Forwarded-For' 
GROUP BY header.value 
ORDER BY COUNT DESC
```

Weitere Informationen zu Datums- und Uhrzeitfunktionen finden Sie unter [Datums- und Uhrzeitfunktionen und Operatoren](https://trino.io/docs/current/functions/datetime.html) in der Trino-Dokumentation.