Συναρτήσεις DateAdd, DateDiff και TimeZoneOffset
Function | Ισχύει για |
---|---|
ΗμερομηνίαΠροσθήκη | Εφαρμογές Dataverse καμβά Στήλες τύπων Ροές επιφάνειας εργασίας Εφαρμογές Power Platform βάσει μοντέλου CLI |
ΗμερομηνίαDiff | Εφαρμογές Dataverse καμβά Στήλες τύπων Ροές επιφάνειας εργασίας Εφαρμογές Power Platform βάσει μοντέλου CLI |
Ζώνη ώραςΜετατόπιση | Εφαρμογές καμβά Ροές επιφάνειας εργασίας Εφαρμογές 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 - Απαιτείται. Η τιμή ημερομηνίας/ώρας που θα χρησιμοποιηθεί.
- Προσθήκη - απαιτείται. Ο αριθμός, σε Units, για να προστεθεί στην DateTime.
- Μονάδες - Προαιρετικό. Ο τύπος Μονάδων για προσθήκη: TimeUnit.Milliseconds, TimeUnit.Seconds, TimeUnit.Minutes, TimeUnit.Hours, TimeUnit.Days, TimeUnit.Months, TimeUnit.Quarters, ή TimeUnit.Years. Εάν δεν καθοριστεί, χρησιμοποιείται η μονάδα TimeUnit.Days.
DateDiff(ΗμερομηνίαΈναρξηςΏρα; ΗμερομηνίαΛήξηςΏρας[ ; Μονάδες ])
- StartDateTime- Απαιτείται. Η τιμή εκκίνησης ημερομηνίας/ώρας.
- EndDateTime - Απαιτείται. Η τιμή λήξης ημερομηνίας/ώρας.
- Μονάδες - Προαιρετικό. Ο τύπος Μονάδων για αφαίρεση: TimeUnit.Milliseconds, TimeUnit.Seconds, TimeUnit.Minutes, TimeUnit.Hours, TimeUnit.Days, TimeUnit.Months, TimeUnit.Quarters, ή TimeUnit.Years. Εάν δεν καθοριστεί, χρησιμοποιείται η μονάδα TimeUnit.Days.
TimeZoneOffset( [Ημερομηνία /Ώρα ] )
- 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( τώρα(); DateValue("1/1/2014") ) | Επιστρέφει τη διαφορά μεταξύ των δύο μονάδων στις προεπιλεγμένες μονάδες TimeUnit.Days | 170 |
DateDiff( Now(); DateValue("1/1/2014"); TimeUnit.Months ) | Επιστρέφει τη διαφορά μεταξύ των δύο τιμών σε μονάδες TimeUnit.Months | 6 |
DateDiff( Τώρα(); Σήμερα(), 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( Ώρα_έναρξης, −TimeZoneOffset(Ώρα_έναρξης), ΏραΜονάδα.Λεπτά)
Σημειώστε το αρνητικό πρόσημο πριν το TimeZoneOffset για να αφαιρέσετε την απόκλιση αντί να την προσθέσετε.
Για να δείτε το αποτέλεσμα, χρησιμοποιήστε τη συνάρτηση Text με τη μορφή dd-mm-yyyy hh:mm, η οποία θα έχει ως αποτέλεσμα 15-07-2013 13:02 εάν βρίσκεστε σε Θερινή ώρα Ειρηνικού.