Kongsi melalui


Fungsi DateAdd, DateDiff dan TimeZoneOffset

Function Terpakai kepada
TarikhTambah Lajur Dataverse formula aplikasi kanvas Aliran desktop Aplikasi dipacu Power Platform model CLI
Perbezaan Tarikh Lajur Dataverse formula aplikasi kanvas Aliran desktop Aplikasi dipacu Power Platform model CLI
Mengimbangi Zon Waktu Aplikasi kanvas Aliran desktop Aplikasi dipacu Power Platform model CLI

Menambah atau mencari perbezaan dalam nilai tarikh/masa dan menukar antara waktu tempatan dan UTC.

Penerangan

Fungsi DateAdd menambah bilangan unit pada nilai tarikh/masa. Hasil adalah nilai tarikh/masa baharu. Anda juga boleh mengurangkan bilangan unit daripada nilai tarikh/masa dengan menentukan nilai negatif.

Fungsi DateDiff akan mengembalikan perbezaan antara dua nilai tarikh/masa. Hasilnya ialah keseluruhan bilangan unit.

Untuk kedua-dua fungsi, unit boleh menjadi TimeUnit.Milliseconds, TimeUnit.Seconds , TimeUnit.Minutes , TimeUnit.Hours , TimeUnit.Days , TimeUnit.Months , TimeUnit.Quarters, atau TimeUnit.Years. Secara lalai, kedua-dua fungsi menggunakan TimeUnit.Days sebagai unit.

Fungsi TimeZoneOffset akan mengembalikan bilangan minit antara waktu tempatan pengguna dan UTC (Waktu Sejagat Diselaraskan).

Anda boleh menggunakan DateAdd dengan TimeZoneOffset untuk menukar antara waktu tempatan pengguna dan UTC (Waktu Sejagat Diselaraskan). Menambah TimeZoneOffset akan menukar waktu tempatan kepada UTC serta mengurangkannya (menambah negatif) akan menukar dari UTC kepada waktu tempatan.

Lihat juga jenis data Tarikh, Masa dan Tarikh Masa dan bekerja dengan tarikh dan masa untuk maklumat lanjut.

Sintaks

Tarikh Tambah ( TarikhMasa, Penambahan [, Unit ] )

  • TarikhMasa - Diperlukan. Nilai tarikh/masa untuk beroperasi.
  • Penambahan - Diperlukan. Nombor dalam Unit untuk menambah pada DateTime.
  • Unit - Pilihan. Jenis Unit untuk ditambah: TimeUnit.Milliseconds,TimeUnit.Seconds,TimeUnit.Minutes,TimeUnit.Hours,TimeUnit.Days,TimeUnit.Months,TimeUnit.Quarters , atauTimeUnit.Years. Jika tidak dinyatakan, TimeUnit.Days digunakan.

DateDiff(StartDateTime,EndDateTime [, Unit ] )

  • StartDateTime - Diperlukan. Nilai tarikh/masa permulaan.
  • EndDateTime - Diperlukan. Nilai tarikh/masa tamat.
  • Unit - Pilihan. Jenis Unit untuk ditolak: TimeUnit.Milliseconds,TimeUnit.Seconds,TimeUnit.Minutes,TimeUnit.Hours,TimeUnit.Days,TimeUnit.Months,TimeUnit.Quarters , atauTimeUnit.Years. Jika tidak dinyatakan, TimeUnit.Days digunakan.

TimeZoneOffset( [ Tarikh ] )

  • TarikhMasa - Pilihan. Nilai tarikh/masa untuk mengembalikan ofset. Tarikh/masa semasa secara lalai digunakan.

Contoh

Dalam semua contoh ini, anggap bahawa tarikh dan masa semasa adalah 15 Julai, 2013, 1:02 PTG.

DateAdd yang mudah

Formula Penerangan Hasil
Teks( DateAdd( Sekarang(), 3 ),
"dd-mm-yyyy hh:mm" )
Menambah tiga hari (unit lalai) pada tarikh dan masa semasa. "18-07-2013 13:02"
Teks( DateAdd( Now(), 4, TimeUnit.Hours ),
"dd-mm-yyyy hh:mm" )
Tambahkan empat jam pada tarikh dan masa semasa. "15-07-2013 17:02"
Teks( DateAdd( Today(), 1, TimeUnit.Months ),
"dd-mm-yyyy hh:mm" )
Menambah satu bulan kepada tarikh semasa, tanpa masa sebagai Hari Ini tidak mengembalikan komponen masa. "15-08-2013 00:00"
Teks( DateAdd( Now(), -30, TimeUnit.Minutes ),
"dd-mm-yyyy hh:mm" )
Mengurangkan 30 minit dari tarikh dan masa semasa. "15-07-2013 12:32"

DateDiff yang mudah

Formula Penerangan Hasil
DateDiff( Now(), DateValue("1/1/2014") ) Mengembalikan perbezaan antara kedua-dua unit dalam unit lalai TimeUnit.Days 170
DateDiff( Now(), DateValue("1/1/2014"), TimeUnit.Months ) Mengembalikan perbezaan antara dua nilai dalam TimeUnit.Months 6
DateDiff( Sekarang(), Hari Ini(), TimeUnit.Minutes ) Mengembalikan perbezaan antara tarikh/masa semasa dan tarikh semasa sahaja (tiada masa) dalam minit. Memandangkan Now adalah kemudian daripada Today, hasil akan menjadi negatif. -782

Perbezaan tarikh dengan hasil pecahan

Fungsi DateDiff hanya mengembalikan keseluruhan bilangan unit yang ditolak dan kejituan diberikan dalam unit yang ditentukan. Untuk mengira perbezaan dengan kejituan yang lebih tinggi, gunakan unit yang lebih kecil dan tukar hasil yang sesuai, seperti dalam contoh di bawah.

Formula Penerangan Hasil
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Hours ) Minit/saat diabaikan, perbezaan adalah berdasarkan masa sehingga jam. 1
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Minutes )/60 Minit yang digunakan dalam perbezaan dan hasilnya dibahagikan dengan 60 untuk mendapatkan perbezaan dalam jam. 0.5
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Seconds )/3600 Minit dan saat yang digunakan dalam perbezaan; hasilnya dibahagikan dengan 3600 untuk mendapatkan perbezaan dalam jam. 0.51

Menukar kepada UTC

Untuk menukarkan kepada UTC (Waktu Sejagat Diselaraskan), tambahkan TimeZoneOffset untuk masa yang diberikan.

Sebagai contoh, bayangkan tarikh dan masa semasa adalah 15 Julai 2013, 1:02 PTG dalam Waktu Siang Pasifik (PDT, UTC-7). Untuk menentukan masa semasa dalam UTC, gunakan:

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

TimeZoneOffset lalai kepada masa semasa, jadi anda tidak perlu menghantar hujah.

Untuk melihat hasil, gunakan fungsi Text dengan format dd-mm-yyyy hh:mm yang akan mengembalikan 15-07-2013 20:02.

Menukar daripada UTC

Untuk menukarkan dari UTC, tolakkan TimeZoneOffset (dengan menambah negatif) untuk masa diberikan.

Sebagai contoh, bayangkan tarikh dan masa UTC 15 Julai 2013, 8:02 PTG adalah disimpan dalam pemboleh ubah yang dinamakan StartTime. Untuk melaraskan masa untuk zon bagi zon masa pengguna, gunakan:

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

Perhatikan tanda negatif sebelum TimeZoneOffset untuk menolak ofset dan bukan menambahnya.

Untuk melihat hasil, gunakan fungsi Text dengan format dd-mm-yyyy hh:mm yang akan menghasilkan 15-07-2013 13:02 jika anda berada dalam Waktu Siang Pasifik.