İki zaman arasındaki fark
Havayolunda her şey dakikayla ölçülür. Kalkış gecikmesi = gerçek kalkış − planlanan kalkış. Her SQL türünün yazımı farklıdır:
| SQL türü | Dakika farkı |
|---|---|
| SQL Server | DATEDIFF(minute, sched_dep, actual_dep) |
| PostgreSQL | EXTRACT(EPOCH FROM (actual_dep - sched_dep)) / 60 |
| MySQL | TIMESTAMPDIFF(MINUTE, sched_dep, actual_dep) |
| Oracle | (actual_dep - sched_dep) * 1440 (DATE farkı gün cinsindendir) |
| BigQuery | DATETIME_DIFF(actual_dep, sched_dep, MINUTE) |
| SQLite | (julianday(actual_dep) - julianday(sched_dep)) * 1440 |
SELECT f.flight_id, f.flight_no, f.sched_dep, f.actual_dep,
ROUND((julianday(f.actual_dep) - julianday(f.sched_dep)) * 1440) AS gecikme_dk
FROM hv_flights f
WHERE f.sched_dep >= '2024-12-24' AND f.sched_dep < '2024-12-25'
ORDER BY f.sched_dep
LIMIT 5;
Gün farkı ile dakika farkı aynı şey değilSQL Server'da
DATEDIFF(day, a, b) arada geçen gece yarısı sayısını verir: 23:50 ile ertesi gün 00:10 arasında 20 dakika olsa da sonuç 1'dir. Süre ölçerken her zaman küçük birimle (dakika) hesapla, sonra gerekirse böl.Zamanında kalkış (on-time performance)
Sektörde bir uçuş planlanan saatten en fazla 15 dakika sonra kalktıysa “zamanında” sayılır. Oran hesabında iptal edilen uçuşlar paydaya girmez:
SELECT ROUND(100.0 * SUM(CASE WHEN ROUND((julianday(f.actual_dep) - julianday(f.sched_dep)) * 1440) <= 15 THEN 1 ELSE 0 END) / COUNT(*), 1) AS otp FROM hv_flights f WHERE f.actual_dep IS NOT NULL;
Saate ve aya göre gruplamak
Kalkış saati için saat parçasını al, ay için yıl-ay metnini kullan. Takvim gün farkı gerektiğinde iki tarafı da önce güne çevir; böylece saat kesirleri sonucu kaydırmaz.