Πρέπει να χρησιμοποιήσω την Oracle, αλλά η συνάρτηση DATEDIFF δεν λειτουργεί στη βάση δεδομένων Oracle.
Πώς να γράψω τον ακόλουθο κώδικα στην Oracle; Είδα κάποια παραδείγματα που χρησιμοποιούν INTERVAL ή TRUNC.
SELECT DATEDIFF ('2000-01-01','2000-01-02') AS DateDiff;
Στην Oracle, μπορείτε απλώς να αφαιρέσετε δύο ημερομηνίες και να λάβετε τη διαφορά σε ημέρες. Σημειώστε επίσης ότι σε αντίθεση με τον SQL Server ή τη MySQL, στην Oracle δεν μπορείτε να εκτελέσετε μια δήλωση select
χωρίς ρήτρα from
. Ένας τρόπος για να το παρακάμψετε αυτό είναι να χρησιμοποιήσετε τον ενσωματωμένο εικονικό πίνακα, dual
:
SELECT TO_DATE('2000-01-02', 'YYYY-MM-DD') -
TO_DATE('2000-01-01', 'YYYY-MM-DD') AS DateDiff
FROM dual
Απλά αφαιρέστε τις δύο ημερομηνίες:
select date '2000-01-02' - date '2000-01-01' as dateDiff
from dual;
Το αποτέλεσμα θα είναι η διαφορά σε ημέρες.
Περισσότερες λεπτομέρειες υπάρχουν στο εγχειρίδιο:<br>, https://docs.oracle.com/cd/E11882_01/server.112/e41084/sql_elements001.htm#i48042
Μπορείτε απλώς να αφαιρέσετε δύο ημερομηνίες. Θα πρέπει πρώτα να το ρίξετε, χρησιμοποιώντας το to_date
:
select to_date('2000-01-01', 'yyyy-MM-dd')
- to_date('2000-01-02', 'yyyy-MM-dd')
datediff
from dual
;
Το αποτέλεσμα είναι σε ημέρες, ώστε η διαφορά αυτών των δύο ημερομηνιών να είναι -1
(μπορείτε να ανταλλάξετε τις δύο ημερομηνίες αν θέλετε). Αν θέλετε να το έχετε σε ώρες, απλά πολλαπλασιάστε το αποτέλεσμα με το 24.