Επιστρέφει μια Μεταβλητή (Εκτεταμένης ακρίβειας) που καθορίζει τον αριθμό των χρονικών διαστημάτων μεταξύ δύο καθορισμένων ημερομηνιών.
Σύνταξη
DateDiff ( διάστημα; ημερομηνία1; ημερομηνία2 [, πρώτη_ημέρα_εβδομάδας] [, πρώτη_εβδομάδα_εβδομάδας] )
Η σύνταξη της συνάρτησης DateDiff περιλαμβάνει τα παρακάτω ορίσματα:
Όρισμα |
Περιγραφή |
---|---|
interval |
Υποχρεωτικό. Παράσταση συμβολοσειράς που είναι το χρονικό διάστημα που χρησιμοποιείτε για να υπολογίσετε τη διαφορά μεταξύ της ημερομηνίας1 και της ημερομηνίας2. |
ημερομηνία1, ημερομηνία2 |
Υποχρεωτικό. Μεταβλητή (Ημερομηνία). Δύο ημερομηνίες που θέλετε να χρησιμοποιήσετε στον υπολογισμό. |
πρώτη_ημέρα_εβδομάδας |
Προαιρετικό. Μια σταθερά που καθορίζει την πρώτη ημέρα της εβδομάδας. Εάν δεν καθοριστεί, πρώτη ημέρα θεωρείται η Κυριακή. |
πρώτη_εβδομάδα_έτους |
Προαιρετικό. Μια σταθερά που καθορίζει την πρώτη εβδομάδα του έτους. Εάν δεν καθοριστεί, πρώτη εβδομάδα θεωρείται η εβδομάδα η οποία περιλαμβάνει την 1η Ιανουαρίου. |
Ρυθμίσεις
Το χρονικό διάστημαόρισμα έχει τις εξής ρυθμίσεις:
Ρύθμιση |
Περιγραφή |
---|---|
εεεε |
Έτος |
τ |
Τρίμηνο |
μ |
Μήνας |
y |
Ημέρα του έτους |
η |
Ημέρα |
β |
Weekday |
ββ |
Εβδομάδα |
ω |
Ώρα |
λ |
Λεπτό |
δ |
Δευτερόλεπτο |
Το όρισμα πρώτη_ημέρα_εβδομάδας έχει τις εξής ρυθμίσεις:
Σταθερά |
Τιμή |
Περιγραφή |
---|---|---|
vbUseSystem |
0 |
Χρησιμοποιήστε τη ρύθμιση API NLS. |
vbSunday |
1 |
Κυριακή (προεπιλογή) |
vbMonday |
2 |
Δευτέρα |
vbTuesday |
3 |
Τρίτη |
vbWednesday |
4 |
Τετάρτη |
vbThursday |
5 |
Πέμπτη |
vbFriday |
6 |
Παρασκευή |
vbSaturday |
7 |
Σάββατο |
Σταθερά |
Τιμή |
Περιγραφή |
---|---|---|
vbUseSystem |
0 |
Χρησιμοποιήστε τη ρύθμιση API NLS. |
vbFirstJan1 |
1 |
Ξεκινήστε με την εβδομάδα κατά την οποία εμφανίζεται η 1η Ιανουαρίου (προεπιλογή). |
vbFirstFourDays |
2 |
Ξεκινήστε με την πρώτη εβδομάδα που έχει τουλάχιστον τέσσερις ημέρες στο νέο έτος. |
vbFirstFullWeek |
3 |
Ξεκινήστε με την πρώτη πλήρη εβδομάδα του έτους. |
Παρατηρήσεις
Μπορείτε να χρησιμοποιήσετε τη συνάρτηση DateDiff για να καθορίσετε πόσα καθορισμένα χρονικά διαστήματα υπάρχουν μεταξύ δύο ημερομηνιών. Για παράδειγμα, μπορείτε να χρησιμοποιήσετε το DateDiff για να υπολογίσετε τον αριθμό των ημερών μεταξύ δύο ημερομηνιών ή τον αριθμό των εβδομάδων μεταξύ της σημερινής ημερομηνίας και του τέλους του έτους.
Για να υπολογίσετε τον αριθμό των ημερών μεταξύ της ημερομηνίας1 και της ημερομηνίας2, μπορείτε να χρησιμοποιήσετε είτε την Ημέρα του έτους ("y") είτε την Ημέρα ("η"). Όταν το όρισμα διάστημα είναι ημέρα της εβδομάδας ("w"), η συνάρτηση DateDiff επιστρέφει τον αριθμό των εβδομάδων μεταξύ των δύο ημερομηνιών. Εάν το όρισμα ημερομηνία1 είναι Δευτέρα, το DateDiff καταμετρά τον αριθμό των Δευτέρων μέχρι την ημερομηνία2. Καταμετρά την ημερομηνία2 αλλά όχι την ημερομηνία1. Ωστόσο, εάν το όρισμα διάστημα είναι Εβδομάδα ("ww"), η συνάρτηση DateDiff επιστρέφει τον αριθμό των ημερολογιακών εβδομάδων μεταξύ των δύο ημερομηνιών. Καταμετρά τον αριθμό των Κυριακών μεταξύ της ημερομηνίας1 και της ημερομηνίας2. DateDiff μετρά ημερομηνία2 εάν είναι Κυριακή; αλλά δεν μετράει την ημερομηνία1, ακόμα κι αν πέσει κυριακή.
Εάν το όρισμα ημερομηνία1 αναφέρεται σε μεταγενέστερο χρονικό σημείο από το όρισμα ημερομηνία2, η συνάρτηση DateDiff επιστρέφει έναν αρνητικό αριθμό.
Το όρισμα πρώτη_ημέρα_εβδομάδας επηρεάζει τους υπολογισμούς που χρησιμοποιούν τα σύμβολα διαστήματος "w" και "ww".
Εάν το όρισμα ημερομηνία1 ή ημερομηνία2 είναι λεκτική σταθερά ημερομηνίας, το καθορισμένο έτος γίνεται μόνιμο τμήμα αυτής της ημερομηνίας. Ωστόσο, εάν η ημερομηνία1 ή η ημερομηνία2 περικλείεται σε διπλά εισαγωγικά (" ") και παραλείψετε το έτος, το τρέχον έτος εισάγεται στον κώδικά σας κάθε φορά που υπολογίζεται η παράσταση ημερομηνίας1 ή ημερομηνίας2 . Έτσι μπορείτε να γράψετε κώδικα που μπορεί να χρησιμοποιηθεί σε διαφορετικά έτη.
Κατά τη σύγκριση της 31ης Δεκεμβρίου με την 1η Ιανουαρίου του αμέσως επερχόμενου έτους, το DateDiff για το έτος ("yyyy") επιστρέφει 1, παρόλο που έχει περάσει μόνο μια ημέρα.
Σημείωση: Για τα ορίσματα ημερομηνία1 και ημερομηνία2, εάν η ρύθμιση της ιδιότητας Ημερολόγιο είναι Γρηγοριανό, η ημερομηνία που παρέχεται πρέπει να είναι Γρηγοριανή. Εάν το ημερολόγιο είναι Χίζρι, η ημερομηνία που παρέχεται πρέπει να είναι Χίζρι.
Παραδείγματα ερωτήματος DateDiff
Expression |
Αποτελέσματα |
---|---|
SELECT DateDiff("yyyy";#01/01/2010#;[DateofSale]) AS Παράσταση1 FROM Πωλήσεις προϊόντων; |
Επιστρέφει τη διαφορά μεταξύ της Ημερομηνίας2 και της Ημερομηνίας1 (εξετάστε την Ημερομηνία1 ως παλαιότερη και την Ημερομηνία2 ως νεότερη) ως αριθμό "Έτη". Αποτέλεσμα: Η διαφορά μεταξύ των τιμών στο πεδίο "DateofSale" και της ημερομηνίας "01/01/2010" ως αριθμός "Έτη". |
SELECT DateDiff("τ";[DateofSale];Date()) AS DaysSinceSale FROM Πωλήσεις προϊόντων; |
Επιστρέφει τη διαφορά μεταξύ της ημερομηνίας συστήματος και της τιμής "DateofSale" ως αριθμό "Τρίμηνα" (με βάση το έτος ημερολόγιο) και εμφανίζεται στη στήλη "DaysSinceSale". επιστρέφει τη διαφορά μεταξύ της ημερομηνίας συστήματος και της τιμής "DateofSale" ως αριθμό "Μήνες" και εμφανίζεται στη στήλη "DaysSinceSale". |
SELECT DateDiff("y";[DateofSale];Date()) AS DaysSinceSale FROM ProductSales; |
Επιστρέφει τη διαφορά μεταξύ της ημερομηνίας συστήματος και της τιμής "DateofSale" ως αριθμό "Ημέρες" και εμφανίζεται στη στήλη "DaysSinceSale". |
SELECT DateDiff("η";[DateofSale];Date()) AS DaysSinceSale FROM ProductSales; |
Επιστρέφει τη διαφορά μεταξύ της ημερομηνίας συστήματος και της τιμής "DateofSale" ως αριθμό "Ημέρες" και εμφανίζεται στη στήλη "DaysSinceSale". |
SELECT DateDiff("w";[DateofSale];Date()) AS DaysSinceSale FROM Πωλήσεις προϊόντων; |
Επιστρέφει τη διαφορά μεταξύ της ημερομηνίας συστήματος και της τιμής "DateofSale" ως αριθμό "Καθημερινές" και εμφανίζεται στη στήλη "DaysSinceSale". Εάν το όρισμα "DateofSale" πέσει Δευτέρα, το DateDiff καταμετρά τον αριθμό των Δευτέρων μέχρι την ημερομηνία του συστήματος. Καταμετρά την ημερομηνία του συστήματος, αλλά όχι την τιμή στο "DateofSale". |
SELECT DateDiff("ww";[DateofSale];Date()) AS DaysSinceSale FROM ProductSales; |
Επιστρέφει τη διαφορά μεταξύ της ημερομηνίας συστήματος και της τιμής "DateofSale" ως αριθμό "Εβδομάδες ημερολόγιου" και εμφανίζεται στη στήλη "DaysSinceSale". Καταμετρά τον αριθμό των Κυριακών μεταξύ "DateofSale" και "ημερομηνία συστήματος". Θα μετράει την ημερομηνία του συστήματος αν πέσει Κυριακή. αλλά δεν μετράει το "DateofSale", ακόμα κι αν πέσει κυριακή. |
SELECT DateDiff("h";[DateTime];Date()) AS DaysSinceSale FROM Πωλήσεις προϊόντων; |
Επιστρέφει τη διαφορά μεταξύ της ημερομηνίας συστήματος και της τιμής "DateTime" ως αριθμό "Ώρες" και εμφανίζεται στη στήλη "DaysSinceSale". |
SELECT DateDiff("n";[DateTime];Date()) AS DaysSinceSale FROM Πωλήσεις προϊόντων; |
Επιστρέφει τη διαφορά μεταξύ της ημερομηνίας συστήματος και της τιμής "DateTime" ως αριθμό "Λεπτά" και εμφανίζεται στη στήλη "DaysSinceSale". |
SELECT DateDiff("s";[DateTime];Date()) AS DaysSinceSale FROM Πωλήσεις προϊόντων; |
Επιστρέφει τη διαφορά μεταξύ της ημερομηνίας συστήματος και της τιμής "DateTime" ως αριθμό "δευτερολέπτων" και εμφανίζεται στη στήλη "DaysSinceSale". |
Παράδειγμα έκφρασης
Χρήση της συνάρτησης DateDiff σε μια παράσταση Μπορείτε να χρησιμοποιήσετε τη συνάρτηση DateDiff όπου μπορείτε να χρησιμοποιήσετε παραστάσεις. Για παράδειγμα, ας υποθέσουμε ότι έχετε μια φόρμα που χρησιμοποιείτε για την ολοκλήρωση παραγγελιών πελατών. Στον πίνακα "Παραγγελίες", έχετε ένα πεδίο με το όνομα ReceiveBefore, το οποίο περιέχει την ημερομηνία κατά την οποία ο πελάτης πρέπει να λάβει την παραγγελία. Μπορείτε να χρησιμοποιήσετε τη συνάρτηση DateDiff με ένα πλαίσιο κειμένου στη φόρμα για να εμφανίσετε τον αριθμό των ημερών που απομένουν πριν από την αποστολή της παραγγελίας.
Υποθέτοντας ότι χρειάζονται δέκα ημέρες για την αποστολή οποιασδήποτε παραγγελίας, ορίζετε την ιδιότητα Προέλευση στοιχείου ελέγχου του πλαισίου κειμένου ως εξής:
=DateDiff("d"; Now(), [Παραγγελίες].[ ReceiveBefore])-10
Όταν ανοίγετε τη φόρμα σε προβολή φόρμας, το πλαίσιο κειμένου εμφανίζει τον αριθμό των ημερών που απομένουν πριν από την αποστολή της παραγγελίας. Εάν απομένουν λιγότερες από 10 ημέρες προτού ο πελάτης χρειαστεί να λάβει την παραγγελία, ο αριθμός στο πλαίσιο κειμένου είναι αρνητικός αριθμός και υποδεικνύει πόσες ημέρες καθυστέρησης θα έχει η παραγγελία εάν αποσταλεί αμέσως.
Παράδειγμα VBA
Χρήση της συνάρτησης DateDiff σε κώδικα VBA
Αυτό το παράδειγμα χρησιμοποιεί τη συνάρτηση DateDiff για να εμφανίσει τον αριθμό των ημερών μεταξύ μιας δεδομένης ημερομηνίας και της σημερινής ημερομηνίας.
Dim TheDate As Date ' Declare variables.
Dim Msg TheDate = InputBox("Enter a date") Msg = "Days from today: " & DateDiff("d", Now, TheDate) MsgBox Msg