Kueri menggunakan tanggal dan waktu - Amazon Athena

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Kueri menggunakan tanggal dan waktu

Contoh di bagian ini mencakup kueri yang menggunakan nilai tanggal dan waktu.

contoh
— Kembalikan bidang stempel waktu dalam format 8601 yang dapat dibaca manusia ISO

Kueri berikut menggunakan to_iso8601 fungsi from_unixtime dan untuk mengembalikan timestamp bidang dalam format ISO 8601 yang dapat dibaca manusia (misalnya, bukan). 2019-12-13T23:40:12.000Z 1576280412771 Kueri juga mengembalikan nama HTTP sumber, ID sumber, dan permintaan.

SELECT to_iso8601(from_unixtime(timestamp / 1000)) as time_ISO_8601, httpsourcename, httpsourceid, httprequest FROM waf_logs LIMIT 10;
contoh
— Kembalikan catatan dari 24 jam terakhir

Kueri berikut menggunakan filter dalam WHERE klausa untuk mengembalikan nama HTTP sumber, ID HTTP sumber, dan bidang HTTP permintaan untuk catatan dari 24 jam terakhir.

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;
contoh
— Mengembalikan catatan untuk rentang tanggal dan alamat IP yang ditentukan

Kueri berikut mencantumkan catatan dalam rentang tanggal yang ditentukan untuk alamat IP klien tertentu.

SELECT * FROM waf_logs WHERE httprequest.clientip='53.21.198.66' AND "date" >= '2021/03/01' AND "date" < '2021/03/31'
contoh
— Untuk rentang tanggal tertentu, hitung jumlah alamat IP dalam interval lima menit

Kueri berikut menghitung, untuk rentang tanggal tertentu, jumlah alamat IP dalam interval lima menit.

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"
contoh
- Hitung jumlah X-Forwarded-For IP dalam 10 hari terakhir

Kueri berikut memfilter header permintaan dan menghitung jumlah X-Forwarded-For IP dalam 10 hari terakhir.

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

Untuk informasi selengkapnya tentang fungsi tanggal dan waktu, lihat Fungsi dan operator tanggal dan waktu dalam dokumentasi Trino.