Bagikan melalui


Fungsi DateAdd, DateDiff, dan TimeZoneOffset

Function Berlaku untuk
DateAdd Kolom rumus aplikasi Dataverse kanvas Alur desktop Aplikasi Power Platform berbasis model CLI
DateDiff Kolom rumus aplikasi Dataverse kanvas Alur desktop Aplikasi Power Platform berbasis model CLI
TimeZoneOffset Aplikasi kanvas Alur desktop Aplikasi Power Platform berbasis model CLI

Menambah atau menemukan perbedaan dalam nilai tanggal/waktu dan mengonversi antara waktu setempat dan UTC.

KETERANGAN

Fungsi DateAdd menambahkan sejumlah unit ke nilai tanggal/waktu. Hasilnya adalah nilai tanggal/waktu baru. Anda juga dapat mengurangi jumlah unit dari nilai tanggal/waktu dengan menentukan nilai negatif.

Fungsi DateDiff menghasilkan perbedaan antara dua nilai tanggal/waktu. Hasilnya adalah bilangan cacah unit.

Untuk kedua fungsi, unit dapat berupa TimeUnit.Milliseconds, TimeUnit.Seconds , TimeUnit.Minutes , TimeUnit.Hours , TimeUnit.Days , TimeUnit.Months , TimeUnit.Quarters , atauTimeUnit.Years . Secara default, kedua fungsi menggunakan TimeUnit.Days sebagai unit.

Fungsi TimeZoneOffset menghasilkan jumlah menit antara waktu lokal pengguna dan UTC (Coordinated Universal Time).

Anda dapat menggunakan DateAdd dengan TimeZoneOffset untuk mengonversi antara waktu lokal pengguna dan UTC (Coordinated Universal Time). Menambahkan TimeZoneOffset akan mengonversi waktu lokal ke UTC, dan mengurangkannya (menambahkan negatif) akan mengonversi dari UTC ke waktu lokal.

Lihat juga tipe data Tanggal, Waktu, dan TanggalWaktu serta bekerja dengan tanggal dan waktu untuk informasi selengkapnya.

Sintaks

DateAdd( DateTime, Addition [, Units ] )

  • DateTime - Wajib. Nilai tanggal/waktu untuk beroperasi.
  • Tambahan - Wajib. Angka, di Unit, untuk ditambahkan ke DateTime.
  • Unit - Opsional. Jenis Unit yang akan ditambahkan: TimeUnit.Milliseconds, TimeUnit.Seconds, TimeUnit.Minutes, TimeUnit.Hours, TimeUnit.Days, TimeUnit.Months, TimeUnit.Quarters, atau TimeUnit.Years. Jika tidak ditentukan,TimeUnit.Days digunakan.

DateDiff( StartDateTime, EndDateTime [, Units ] )

  • StartDateTime - Wajib. Nilai tanggal/waktu mulai.
  • EndDateTime - Wajib. Nilai tanggal/waktu akhir.
  • Unit - Opsional. Jenis Unit yang akan dikurangi: TimeUnit.Milliseconds, TimeUnit.Seconds, TimeUnit.Minutes, TimeUnit.Hours, TimeUnit.Days, TimeUnit.Months, TimeUnit.Quarters, atau TimeUnit.Years. Jika tidak ditentukan,TimeUnit.Days digunakan.

TimeZoneOffset( [ DateTime ] )

  • DateTime - Opsional. Nilai tanggal/waktu yang akan menghasilkan offset. Secara default, tanggal/waktu saat ini digunakan.

Contoh

Dalam semua contoh ini, anggap bahwa tanggal dan waktu saat ini adalah 15 Juli 2013, 1:02 PM.

DateAdd Sederhana

Rumus KETERANGAN Hasil
Text( DateAdd( Now(), 3 ),
"dd-mm-yyyy hh:mm" )
Menambahkan tiga hari (unit default) ke tanggal dan waktu saat ini. "18-07-2013 13:02"
Teks ( DateAdd ( Now (), 4, TimeUnit.Hours ),
"dd-mm-yyyy hh:mm" )
Menambahkan empat jam ke tanggal dan waktu saat ini. "15-07-2013 17:02"
Teks ( DateAdd ( Hari Ini (), 1, TimeUnit.Bulan ),
"dd-mm-yyyy hh:mm" )
Menambahkan satu bulan ke tanggal saat ini, tanpa waktu seperti Hari ini tidak menghasilkan komponen waktu. "15-08-2013 00:00"
Teks ( DateAdd (Now (), -30, TimeUnit.Minutes ),
"dd-mm-yyyy hh:mm" )
Mengurangi 30 menit dari tanggal dan waktu saat ini. "15-07-2013 12:32"

DateDiff Sederhana

Rumus KETERANGAN Hasil
DateDiff( Now(), DateValue("1/1/2014") ) Mengembalikan selisih antara dua unit dalam satuan default TimeUnit.Days 170
DateDiff( Sekarang(), DateValue("1/1/2014"), TimeUnit.Months ) Mengembalikan selisih antara kedua nilai dalam TimeUnit.Months 6
DateDiff( Sekarang(), Hari ini(), TimeUnit.Minutes ) Menghasilkan selisih antara tanggal/waktu saat ini dan tanggal saat ini (tidak ada waktu) dalam menit. Karena Sekarang lebih lambat dari Hari ini, hasilnya akan negatif. -782

Selisih tanggal dengan hasil pecahan

Fungsi DateDiff hanya mengembalikan seluruh jumlah unit yang dikurangi, dan presisi diberikan pada unit yang ditentukan. Untuk menghitung selisih dengan presisi yang lebih tinggi, gunakan unit yang lebih kecil, dan konversikan hasil dengan benar, seperti contoh di bawah ini.

Rumus KETERANGAN Hasil
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Hours ) Menit/detik diabaikan, perbedaannya didasarkan pada waktu hingga jam. 1
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Minutes )/60 Menit digunakan dalam selisih, dan hasilnya dibagi menjadi 60 untuk memiliki selisih dalam jam. 0.5
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Seconds )/3600 Menit dan detik digunakan dalam selisih; hasilnya dibagi menjadi 3600 untuk memiliki selisih dalam jam. 0.51

Mengonversi ke UTC

Untuk mengonversi ke UTC (Coordinated Universal Time), tambahkan TimeZoneOffset untuk waktu yang ditentukan.

Misalnya, bayangkan tanggal dan waktu saat ini adalah 15 juli 2013, 1:02 PM di Pacific Daylight time (PDT, UTC-7). Untuk menentukan waktu saat ini di UTC, gunakan:

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

TimeZoneOffset default ke waktu saat ini, sehingga Anda tidak perlu meneruskan argumen.

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

Mengonversi dari UTC

Untuk mengonversi dari UTC, kurangi TimeZoneOffset (dengan menambahkan negatif) selama waktu tertentu.

Misalnya, bayangkan tanggal dan waktu UTC 15 Juli 2013, 8:02 PM disimpan dalam variabel bernama StartTime. Untuk menyesuaikan waktu untuk zona waktu pengguna, gunakan:

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

Catat tanda negatif sebelum TimeZoneOffset untuk mengurangi offset daripada menambahkannya.

Untuk melihat hasilnya, gunakan fungsi Text dengan format dd-mm-yyyy hh:mm, yang akan menghasilkan 15-07-2013 13:02 jika Anda berada dalam waktu Pacific Daylight.