Share via


Συναρτήσεις DateAdd, DateDiff και TimeZoneOffset

Ισχύει σε: Εφαρμογές καμβά Στήλες τύπων Dataverse Ροές επιφάνειας εργασίας Εφαρμογές βάσει μοντέλου Power Platform CLI

Προσθέτει ή εντοπίζει τη διαφορά στις τιμές ημερομηνίας/ώρας και μετατρέπει την τοπική ώρα σε UTC.

Περιγραφή

Η συνάρτηση DateAdd προσθέτει έναν αριθμό μονάδων σε μια τιμή ημερομηνίας/ώρας. Το αποτέλεσμα είναι μια νέα τιμή ημερομηνίας/ώρας. Μπορείτε επίσης να αφαιρέσετε έναν αριθμό μονάδων από μια τιμή ημερομηνίας/ώρας, καθορίζοντας μια αρνητική τιμή.

Η συνάρτηση DateDiff επιστρέφει τη διαφορά μεταξύ δύο τιμών ημερομηνίας/ώρας. Το αποτέλεσμα είναι ένας ακέραιος αριθμός μονάδων.

Για αμφότερες τις συναρτήσεις, οι μονάδες μπορεί να είναι TimeUnit.Milliseconds, TimeUnit.Seconds, TimeUnit.Minutes, TimeUnit.Hours, TimeUnit.Days, TimeUnit.Months, TimeUnit.Quarters, ή TimeUnit.Years. Από προεπιλογή, αμφότερες οι συναρτήσεις χρησιμοποιούν τις TimeUnit.Days ως μονάδες.

Η συνάρτηση TimeZoneOffset επιστρέφει τον αριθμό λεπτών μεταξύ της τοπικής ώρας του χρήστη και της ώρας UTC (Συντονισμένη παγκόσμια ώρα).

Μπορείτε να χρησιμοποιήσετε τη συνάρτηση DateAdd με την TimeZoneOffset για μετατροπή μεταξύ της τοπικής ώρας του χρήστη και της ώρας UTC (Συντονισμένη παγκόσμια ώρα). Η προσθήκη της TimeZoneOffset θα μετατρέψει μια τοπική ώρα σε UTC και η αφαίρεσή της (πρόσθεση με αρνητικό αριθμό) θα πραγματοποιήσει μετατροπή της ώρας UTC σε τοπική ώρα.

Ανατρέξτε επίσης στις ενότητες Τύποι δεδομένων Date, Time και DateTime και Εργασία με ημερομηνίες και ώρες για περισσότερες πληροφορίες.

Σύνταξη

DateAdd( DateTime, Addition [, Units ] )

  • DateTime - Υποχρεωτικό. Η τιμή ημερομηνίας/ώρας που θα χρησιμοποιηθεί.
  • Addition - Υποχρεωτικό. Ο αριθμός, σε Units, για να προστεθεί στην DateTime.
  • Units - Προαιρετικό. Ο τύπος Μονάδων για προσθήκη: TimeUnit.Milliseconds, TimeUnit.Seconds, TimeUnit.Minutes, TimeUnit.Hours, TimeUnit.Days, TimeUnit.Months, TimeUnit.Quarters, ή TimeUnit.Years. Εάν δεν καθοριστεί, χρησιμοποιείται η μονάδα TimeUnit.Days.

DateDiff( StartDateTime, EndDateTime [, Units ] )

  • StartDateTime - Υποχρεωτικό. Η τιμή εκκίνησης ημερομηνίας/ώρας.
  • EndDateTime - Υποχρεωτικό. Η τιμή λήξης ημερομηνίας/ώρας.
  • Units - Προαιρετικό. Ο τύπος Μονάδων για αφαίρεση: TimeUnit.Milliseconds, TimeUnit.Seconds, TimeUnit.Minutes, TimeUnit.Hours, TimeUnit.Days, TimeUnit.Months, TimeUnit.Quarters, ή TimeUnit.Years. Εάν δεν καθοριστεί, χρησιμοποιείται η μονάδα TimeUnit.Days.

TimeZoneOffset( [ DateTime ] )

  • DateTime - Προαιρετικό. Η τιμή ημερομηνίας/ώρας για την οποία θα επιστραφεί η απόκλιση. Από προεπιλογή, χρησιμοποιείται η τρέχουσα ημερομηνία/ώρα.

Παραδείγματα

Σε όλα αυτά τα παραδείγματα, υποθέστε ότι η τρέχουσα ημερομηνία και ώρα είναι 15 Ιουλίου, 2013, 1:02 Μ.Μ.

Απλή DateAdd

Τύπος Περιγραφή Αποτέλεσμα
Text( DateAdd( Now(), 3 ),
"dd-mm-yyyy hh:mm" )
Προσθέτει τρεις ημέρες (προεπιλεγμένες μονάδες) στην τρέχουσα ημερομηνία και ώρα. "18-07-2013 13:02"
Text( DateAdd( Now(), 4, TimeUnit.Hours ),
"dd-mm-yyyy hh:mm" )
Προσθέτει τέσσερις ώρες στην τρέχουσα ημερομηνία και ώρα. "15-07-2013 17:02"
Text( DateAdd( Today(), 1, TimeUnit.Months ),
"dd-mm-yyyy hh:mm" )
Προσθέτει ένα μήνα στην τρέχουσα ημερομηνία, χωρίς ώρα, καθώς το Today δεν επιστρέφει ένα στοιχείο ώρας. "15-08-2013 00:00"
Text( DateAdd( Now(), ‑30, TimeUnit.Minutes ),
"dd-mm-yyyy hh:mm" )
Αφαιρεί 30 λεπτά από την τρέχουσα ημερομηνία και ώρα. "15-07-2013 12:32"

Απλή DateDiff

Τύπος Περιγραφή Αποτέλεσμα
DateDiff( Now(), DateValue("1/1/2014") ) Επιστρέφει τη διαφορά μεταξύ των δύο μονάδων στις προεπιλεγμένες μονάδες TimeUnit.Days 170
DateDiff( Now(), DateValue("1/1/2014"), TimeUnit.Months ) Επιστρέφει τη διαφορά μεταξύ των δύο τιμών σε μονάδες TimeUnit.Months 6
DateDiff( Now(), Today(), TimeUnit.Minutes ) Επιστρέφει τη διαφορά μεταξύ της τρέχουσας ημερομηνίας/ώρας και της τρέχουσας ημερομηνίας μόνο (χωρίς ώρα) σε λεπτά. Καθώς η μονάδα Now είναι μεταγενέστερη της μονάδας Today, το αποτέλεσμα θα είναι αρνητικό. -782

Διαφορά ημερομηνιών με κλασματικά αποτελέσματα

Η συνάρτηση DateDiff επιστρέφει μόνο έναν ακέραιο αριθμό των μονάδων που αφαιρούνται και η ακρίβεια δίνεται στη μονάδα που καθορίστηκε. Για να υπολογίσετε τη διαφορά με μεγαλύτερη ακρίβεια, χρησιμοποιήστε μια μικρότερη μονάδα και μετατρέψτε το αποτέλεσμα κατάλληλα, όπως στα παρακάτω παραδείγματα.

Τύπος Περιγραφή Αποτέλεσμα
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Hours ) Τα λεπτά/δευτερόλεπτα αγνοούνται, η διαφορά βασίζεται στον χρόνο μέχρι την ώρα. 1
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Minutes )/60 Τα λεπτά χρησιμοποιούνται στη διαφορά και το αποτέλεσμα διαιρείται με το 60 για να έχει τη διαφορά στις ώρες. 0.5
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Seconds )/3600 Τα λεπτά και τα δευτερόλεπτα χρησιμοποιούνται στη διαφορά Το αποτέλεσμα διαιρείται με το 3600 για να έχει τη διαφορά στις ώρες. 0.51

Μετατροπή σε UTC

Για μετατροπή σε UTC (Συντονισμένη παγκόσμια ώρα), προσθέστε το TimeZoneOffset για τη δεδομένη ώρα.

Για παράδειγμα, υποθέστε ότι η τρέχουσα ημερομηνία και ώρα είναι 15 Ιουλίου, 2013, 1:02 Μ.Μ. στη Θερινή ώρα Ειρηνικού (PDT, UTC-7). Για να καθορίσετε την τρέχουσα ώρα σε UTC, χρησιμοποιήστε:

  • DateAdd( Now(), TimeZoneOffset(), TimeUnit.Minutes )

Η προεπιλογή του TimeZoneOffset είναι η τρέχουσα ώρα, ώστε να μην χρειάζεται να μεταβιβαστεί ως όρισμα.

Για να δείτε το αποτέλεσμα, χρησιμοποιήστε τη συνάρτηση Text με τη μορφή dd-mm-yyyy hh:mm, η οποία θα επιστρέψει 15-07-2013 20:02.

Μετατροπή από UTC

Για μετατροπή από UTC, αφαιρέστε το TimeZoneOffset (προσθέτοντας τον αρνητικό αριθμό) για τη δεδομένη ώρα.

Για παράδειγμα, υποθέστε ότι ημερομηνία και ώρα UTC 15 Ιουλίου, 2013, 8:02 Μ.Μ. αποθηκεύεται σε μια μεταβλητή με την ονομασία StartTime. Για να προσαρμόσετε την ώρα στη ζώνη ώρας του χρήστη, χρησιμοποιήστε τη συνάρτηση:

  • DateAdd( StartTime, −TimeZoneOffset( StartTime ), TimeUnit.Minutes )

Σημειώστε το αρνητικό πρόσημο πριν το TimeZoneOffset για να αφαιρέσετε την απόκλιση αντί να την προσθέσετε.

Για να δείτε το αποτέλεσμα, χρησιμοποιήστε τη συνάρτηση Text με τη μορφή dd-mm-yyyy hh:mm, η οποία θα έχει ως αποτέλεσμα 15-07-2013 13:02 εάν βρίσκεστε σε Θερινή ώρα Ειρηνικού.