Mengembalikan Varian (Long) yang menentukan jumlah interval waktu di antara dua tanggal yang ditentukan.
Sintaks
DateDiff ( interval, date1, date2 [, firstdayofweek] [, firstweekofyear] )
Sintaks fungsi DateDiff memiliki argumen ini:
Argumen |
Deskripsi |
---|---|
interval |
Diperlukan. Ekspresi string yang merupakan interval waktu yang Anda gunakan untuk menghitung selisih antara tanggal1 dan tanggal2. |
tanggal1, tanggal2 |
Diperlukan. Varian (Tanggal). Dua tanggal yang ingin Anda gunakan dalam perhitungan. |
firstdayofweek |
Opsional. konstanta yang menentukan hari pertama dalam seminggu. Jika tidak ditentukan, Minggu dianggap sebagai hari pertama dalam seminggu. |
firstdayofyear |
Opsional. Konstanta yang menentukan minggu pertama dalam setahun. Jika tidak ditentukan, minggu pertama diasumsikan sebagai minggu munculnya tanggal 1 Januari. |
Pengaturan
Interval argumen memiliki pengaturan ini:
Pengaturan |
Deskripsi |
---|---|
yyyy |
Tahun |
q |
Kuartal |
m |
Bulan |
y |
Hari dalam setahun |
d |
Hari |
w |
Hari kerja |
ww |
Minggu |
h |
Jam |
n |
Menit |
s |
Detik |
Argumen firstdayofweek memiliki pengaturan ini:
Konstanta |
Nilai |
Deskripsi |
---|---|---|
vbUseSystem |
0 |
Gunakan pengaturan API NLS. |
vbSunday |
1 |
Minggu (default) |
vbMonday |
2 |
Senin |
vbTuesday |
3 |
Selasa |
vbWednesday |
4 |
Rabu |
vb Kamis |
5 |
Kamis |
vbFriday |
6 |
Jumat |
vbSaturday |
7 |
Sabtu |
Konstanta |
Nilai |
Deskripsi |
---|---|---|
vbUseSystem |
0 |
Gunakan pengaturan API NLS. |
vbFirstJan1 |
1 |
Mulai dengan minggu di mana 1 Januari terjadi (default). |
vbFirstFourDays |
2 |
Mulailah dengan minggu pertama yang memiliki setidaknya empat hari dalam tahun baru. |
vbFirstFullWeek |
3 |
Mulai dengan minggu penuh pertama dalam setahun. |
Keterangan
Anda dapat menggunakan fungsi DateDiff untuk menentukan berapa banyak interval waktu tertentu yang ada di antara dua tanggal. Misalnya, Anda mungkin menggunakan DateDiff untuk menghitung jumlah hari antara dua tanggal, atau jumlah minggu antara hari ini dan akhir tahun.
Untuk menghitung jumlah hari antara tanggal1 dan tanggal2, Anda dapat menggunakan Hari dalam setahun ("y") atau Hari ("d"). Ketika interval adalah Weekday ("w"), DateDiff mengembalikan jumlah minggu di antara dua tanggal. Jika tanggal1 jatuh pada hari Senin, DateDiff menghitung jumlah Senin hingga tanggal2. Ini menghitung tanggal2 tapi tidak tanggal1. Namun, jika interval adalah Minggu ("ww"), fungsi DateDiff mengembalikan jumlah minggu kalender di antara dua tanggal. Ini menghitung jumlah Hari Minggu antara tanggal1 dan tanggal2. DateDiff menghitung tanggal2 jika jatuh pada hari Minggu; tetapi tidak menghitung tanggal1, bahkan jika jatuh pada hari Minggu.
Jika date1 merujuk ke titik selanjutnya dalam waktu daripada date2, fungsi DateDiff mengembalikan angka negatif.
Argumen firstdayofweek mempengaruhi perhitungan yang menggunakan simbol interval "w" dan "ww".
Jika tanggal1 atau tanggal2 adalah terbaca sebagai tanggal, tahun yang ditentukan menjadi bagian permanen dari tanggal tersebut. Namun, jika tanggal1 atau tanggal2 dimasukkan dalam tanda kutip ganda (" "), dan Anda menghilangkan tahun, tahun saat ini disisipkan dalam kode Anda setiap kali ekspresi tanggal1 atau tanggal2 dievaluasi. Ini memungkinkan untuk menulis kode yang dapat digunakan dalam tahun yang berbeda.
Ketika membandingkan tanggal 31 Desember dengan 1 Januari tahun berikutnya, DateDiff untuk Tahun ("yyyy") mengembalikan 1, meskipun hanya satu hari yang berlalu.
Catatan: Untuk tanggal1 dan tanggal2, jika pengaturan properti Kalender adalah Gregorian, tanggal yang disediakan harus gregorian. Jika kalender adalah Hijriyah, tanggal yang disediakan harus Hijriyah.
Contoh Kueri DateDiff
Ekspresi |
Hasil |
---|---|
SELECT DateDiff("yyyy",#01/01/2010#,[DateofSale]) AS Expr1 FROM ProductSales; |
Mengembalikan selisih antara Date2 dan Date1 (menganggap Date1 sebagai tanggal terlama dan Date2 sebagai yang terbaru) sebagai jumlah 'Tahun'. Hasil: Selisih antara nilai dalam bidang "DateofSale" dan tanggal "01/01/2010" sebagai jumlah 'Tahun'. |
SELECT DateDiff("q",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Mengembalikan selisih antara tanggal sistem dan "DateofSale" sebagai jumlah 'Kuartal' (berdasarkan tahun kalender) dan ditampilkan dalam kolom "DaysSinceSale". mengembalikan selisih antara tanggal sistem dan "DateofSale" sebagai jumlah 'Bulan' dan ditampilkan dalam kolom "DaysSinceSale". |
SELECT DateDiff("y",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Mengembalikan selisih antara tanggal sistem dan "DateofSale" sebagai jumlah 'Hari' dan ditampilkan dalam kolom "DaysSinceSale". |
SELECT DateDiff("d",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Mengembalikan selisih antara tanggal sistem dan "DateofSale" sebagai jumlah 'Hari' dan ditampilkan dalam kolom "DaysSinceSale". |
SELECT DateDiff("w",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Mengembalikan selisih antara tanggal sistem dan "DateofSale" sebagai jumlah 'Hari Kerja' dan ditampilkan dalam kolom "DaysSinceSale". Jika "DateofSale" jatuh pada hari Senin, DateDiff menghitung jumlah Senin hingga tanggal sistem. Ini menghitung tanggal sistem tetapi bukan nilai dalam "DateofSale". |
SELECT DateDiff("ww",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Mengembalikan selisih antara tanggal sistem dan "DateofSale" sebagai jumlah "Minggu Kalender" dan ditampilkan dalam kolom "DaysSinceSale". Ini menghitung jumlah Hari Minggu antara "DateofSale" dan "tanggal sistem". Ini akan menghitung tanggal sistem jika jatuh pada hari Minggu; tetapi tidak menghitung "DateofSale", bahkan jika jatuh pada hari Minggu. |
SELECT DateDiff("h",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; |
Mengembalikan selisih antara tanggal sistem dan "DateTime" sebagai jumlah 'Jam' dan ditampilkan dalam kolom "DaysSinceSale". |
SELECT DateDiff("n",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; |
Mengembalikan selisih antara tanggal sistem dan "DateTime" sebagai jumlah 'Menit' dan ditampilkan dalam kolom "DaysSinceSale". |
SELECT DateDiff("s",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; |
Mengembalikan selisih antara tanggal sistem dan "DateTime" sebagai jumlah 'detik' dan ditampilkan dalam kolom "DaysSinceSale". |
Contoh ekspresi
Menggunakan fungsi DateDiff dalam ekspresi Anda dapat menggunakan fungsi DateDiff di mana pun Anda dapat menggunakan ekspresi. Misalnya, Anda memiliki formulir yang Anda gunakan untuk memenuhi pesanan pelanggan. Dalam tabel Pesanan, Anda memiliki bidang bernama ReceiveBefore yang berisi tanggal di mana pelanggan perlu menerima pesanan. Anda dapat menggunakan fungsi DateDiff dengan kotak teks pada formulir untuk menampilkan jumlah hari tersisa sebelum pesanan harus dikirimkan.
Dengan asumsi diperlukan waktu sepuluh hari untuk mengirimkan pesanan apa pun, Anda mengatur properti Sumber Kontrol dari kotak teks sebagai berikut:
=DateDiff("d", Now(), [Orders].[ ReceiveBefore])-10
Saat Anda membuka formulir dalam tampilan Formulir, kotak teks menampilkan jumlah hari tersisa sebelum pesanan harus dikirimkan. Jika ada kurang dari 10 hari tersisa sebelum pelanggan perlu menerima pesanan, angka dalam kotak teks negatif dan menunjukkan berapa hari terlambat pesanan akan terjadi jika dikirim segera.
Contoh VBA
Menggunakan fungsi DateDiff dalam kode VBA
Contoh ini menggunakan fungsi DateDiff untuk menampilkan jumlah hari antara tanggal tertentu dan hari ini.
Dim TheDate As Date ' Declare variables.
Dim Msg TheDate = InputBox("Enter a date") Msg = "Days from today: " & DateDiff("d", Now, TheDate) MsgBox Msg