Συνάρτηση DateDiff

Ισχύει για
Access για Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Επιστρέφει μια μεταβλητή (εκτεταμένης διάρκειας), η οποία καθορίζει τον αριθμό των χρονικών διαστημάτων μεταξύ δύο ημερομηνιών.

Σύνταξη

DateDiff(interval, date1, date2[, firstdayofweek][, firstweekofyear])

Η DateDiff συνάρτηση έχει τα εξής ορίσματα:

Όρισμα Περιγραφή
interval Υποχρεωτικό. Παράσταση συμβολοσειράς που είναι το χρονικό διάστημα που χρησιμοποιείτε για να υπολογίσετε τη διαφορά μεταξύ date1 και date2.
date1, date2 Υποχρεωτικό. Μεταβλητή (ημερομηνία). Δύο ημερομηνίες που θέλετε να χρησιμοποιήσετε στον υπολογισμό.
firstdayofweek Προαιρετικό. Μια σταθερά που καθορίζει την πρώτη ημέρα της εβδομάδας. Εάν δεν το καθορίσετε, θεωρείται η Κυριακή.
firstweekofyear Προαιρετικό. Μια σταθερά που καθορίζει την πρώτη εβδομάδα του έτους. Εάν δεν την καθορίσετε, η πρώτη εβδομάδα είναι η εβδομάδα στην οποία περιλαμβάνει η 1η Ιανουαρίου.

Ρυθμίσεις

Το interval όρισμα έχει τις εξής ρυθμίσεις:

Ρύθμιση Περιγραφή
yyyy Έτος
q Τρίμηνο
m Μήνας
y Ημέρα του έτους
d Ημέρα
w Weekday
ww Εβδομάδα
h Ώρα
n Λεπτό
s Δευτερόλεπτο

Το firstdayofweek όρισμα έχει τις εξής ρυθμίσεις:

Σταθερά Τιμή Περιγραφή
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 για να υπολογίσετε τον αριθμό των ημερών μεταξύ δύο ημερομηνιών ή τον αριθμό των εβδομάδων μεταξύ σήμερα και τέλους του έτους.

Για να υπολογίσετε τον αριθμό των ημερών μεταξύ date1date2και , μπορείτε να χρησιμοποιήσετε είτε Ημέρα έτους ("y") είτε Ημέρα ("d"). Το πότε interval είναι εργάσιμη ημέρα ("w"), DateDiff επιστρέφει τον αριθμό των εβδομάδων μεταξύ των δύο ημερομηνιών. Αν date1 πέσει Δευτέρα, DateDiff μετράει τον αριθμό των Δευτέρων μέχρι .date2 Μετράει date2 αλλά όχι date1. Εάν interval είναι εβδομάδα ("ww"), η DateDiff συνάρτηση επιστρέφει τον αριθμό των ημερολογιακών εβδομάδων μεταξύ των δύο ημερομηνιών. Μετράει τον αριθμό των Κυριακών μεταξύ date1 και date2. DateDiff μετράει date2 αν πέφτει Κυριακή, αλλά δεν μετράει date1, ακόμα κι αν πέσει Κυριακή.

Εάν date1 αναφέρεται σε μεταγενέστερο χρονικό σημείο από date2το , η DateDiff συνάρτηση επιστρέφει αρνητικό αριθμό.

Το firstdayofweek όρισμα επηρεάζει τους υπολογισμούς που χρησιμοποιούν τα σύμβολα και "w""ww" τα σύμβολα διαστήματος.

date2 Εάν date1 η ημερομηνία είναι λεκτική ή περιορισμένη, το καθορισμένο έτος γίνεται μόνιμο τμήμα αυτής της ημερομηνίας. Ωστόσο, εάν date1date2 περικλείεται ή περικλείεται σε διπλά εισαγωγικά (" ") και παραλείψετε το έτος, το τρέχον έτος εισάγεται στον κώδικά σας κάθε φορά που υπολογίζεται η date1 παράσταση or date2 . Αυτό καθιστά δυνατή τη σύνταξη κώδικα που μπορείτε να χρησιμοποιήσετε σε διαφορετικά έτη.

Όταν συγκρίνετε την 31η Δεκεμβρίου με την 1η Ιανουαρίου του επόμενου έτους, DateDiff για το έτος ("yyyy") επιστρέφει 1 παρόλο που έχει περάσει μόνο μία ημέρα.

Σημείωση

Για date1 και date2, εάν η ρύθμιση της ιδιότητας Calendar είναι Γρηγοριανή, η ημερομηνία που παρέχεται πρέπει να είναι Γρηγοριανή. Εάν το ημερολόγιο είναι Χίζρι, η ημερομηνία που παρέχεται πρέπει να είναι Χίζρι.

Παραδείγματα ερωτήματος DateDiff

Έκφραση Αποτελέσματα
SELECT DateDiff("yyyy",#01/01/2010#,[DateofSale]) AS Expr1 FROM ProductSales; Επιστρέφει τη διαφορά, σε έτη, μεταξύ της ημερομηνίας 01/01/2010 και των τιμών του DateofSale πεδίου.
SELECT DateDiff("q",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Επιστρέφει τη διαφορά, σε τρίμηνα με βάση το ημερολογιακό έτος, μεταξύ της ημερομηνίας του συστήματος και DateofSaleτου , και την εμφανίζει στη DaysSinceSale στήλη.
SELECT DateDiff("y",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Επιστρέφει τη διαφορά, σε ημέρες, μεταξύ της ημερομηνίας του συστήματος και DateofSaleτου , και την εμφανίζει στη DaysSinceSale στήλη.
SELECT DateDiff("d",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Επιστρέφει τη διαφορά, σε ημέρες, μεταξύ της ημερομηνίας του συστήματος και DateofSaleτου , και την εμφανίζει στη DaysSinceSale στήλη.
SELECT DateDiff("w",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Επιστρέφει τη διαφορά, σε εργάσιμες ημέρες, μεταξύ της ημερομηνίας του συστήματος και 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 ProductSales; Επιστρέφει τη διαφορά, σε ώρες, μεταξύ της ημερομηνίας του συστήματος και DateTimeτου , και την εμφανίζει στη DaysSinceSale στήλη.
SELECT DateDiff("n",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; Επιστρέφει τη διαφορά, σε λεπτά, μεταξύ της ημερομηνίας του συστήματος και DateTimeτου , και την εμφανίζει στη DaysSinceSale στήλη.
SELECT DateDiff("s",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; Επιστρέφει τη διαφορά, σε δευτερόλεπτα, μεταξύ της ημερομηνίας του συστήματος και DateTimeτου , και την εμφανίζει στη DaysSinceSale στήλη.

Χρήση της συνάρτησης DateDiff σε παράσταση

Μπορείτε να χρησιμοποιήσετε τη DateDiff συνάρτηση οπουδήποτε μπορείτε να χρησιμοποιήσετε παραστάσεις. Για παράδειγμα, ας υποθέσουμε ότι έχετε μια φόρμα που χρησιμοποιείτε για να διεκπεραιώσετε παραγγελίες πελατών. Στον πίνακα "Παραγγελίες", έχετε ένα πεδίο με όνομα ReceiveBefore που περιέχει την ημερομηνία μέχρι την οποία ο πελάτης πρέπει να λάβει την παραγγελία. Μπορείτε να χρησιμοποιήσετε τη DateDiff συνάρτηση με ένα πλαίσιο κειμένου στη φόρμα για να εμφανίσετε τον αριθμό των ημερών που απομένουν μέχρι να πρέπει να αποσταλεί η παραγγελία.

Υποθέτοντας ότι χρειάζονται δέκα ημέρες για την αποστολή οποιασδήποτε παραγγελίας, ορίστε την ιδιότητα "Προέλευση στοιχείου ελέγχου " του πλαισίου κειμένου ως εξής:

=DateDiff("d", Now(), [Orders].[ReceiveBefore])-10

Όταν ανοίγετε τη φόρμα σε προβολή φόρμας, το πλαίσιο κειμένου εμφανίζει τον αριθμό των ημερών που απομένουν μέχρι να αποσταλεί η παραγγελία. Εάν απομένουν λιγότερες από 10 ημέρες έως ότου ο πελάτης πρέπει να λάβει την παραγγελία, ο αριθμός στο πλαίσιο κειμένου είναι αρνητικός. Υποδεικνύει πόσες ημέρες καθυστέρησης θα είναι η παραγγελία εάν την στείλετε αμέσως.

Χρήση της συνάρτησης 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

Δείτε επίσης

Επιλογή της σωστής συνάρτησης ημερομηνίας