Untuk versi Microsoft Access 97 dari artikel ini, lihat
130514.

Sedang: Memerlukan dasar makro, pengkodean dan keterampilan interoperabilitas .

Ringkasan

Artikel ini menjelaskan bagaimana Microsoft Access penyimpanan data tanggal waktu ketik. Artikel ini juga menjelaskan mengapa Anda menerima hasil tak terduga ketika Anda menghitung tanggal dan waktu atau membandingkan tanggal dan waktu.

Artikel ini menjelaskan tentang topik berikut ini:

  • Menyimpan data tanggal waktu

  • Format tanggal waktu kolom

  • Menghitung data waktu

  • Membandingkan data tanggal

  • Membandingkan data waktu

Informasi lebih lanjut

Menyimpan data tanggal waktu

Akses penyimpanan jenis data tanggal waktu sebagai presisi ganda, floating-point nomor angka desimal hingga 15. Bagian bilangan bulat nomor presisi ganda mewakili tanggal. Bagian desimal mewakili waktu.

Tanggal yang valid nilai berkisar-657,434 (Januari 1, 100 m)-2,958,465 (Desember 31, 9999 m). Nilai 0 tanggal mewakili 30 Desember 1899. Akses menyimpan tanggal sebelum 30 Desember 1899 sebagai angka negatif.

Nilai-nilai waktu yang valid berkisar.0 (00: 00:00) untuk.99999 (23: 59:59). Nilai numerik yang menunjukkan sebagian kecil dari satu hari. Anda dapat mengkonversi nilai numerik jam, menit, dan detik dengan mengalikan nilai numerik dengan 24.

Tabel berikut ini menunjukkan cara akses menyimpan nilai tanggal waktu:
Double Date Actual Time Actual
number portion date portion time
------------------------------------------------------------------

1.0 1 December 31, 1899 .0 12:00:00 A.M.
2.5 2 January 1, 1900 .5 12:00:00 P.M.
27468.96875 27468 March 15, 1975 .96875 11:15:00 P.M.
36836.125 36836 November 6, 2000 .125 3:00:00 A.M.
Untuk melihat bagaimana akses menyimpan nilai tanggal waktu sebagai angka, ketik perintah berikut di jendela langsung, tekan ENTER, dan kemudian perhatikan hasil:

?CDbl(#5/18/1999 14:00:00#)
Hasil sama dengan: 36298.5833333333

?CDbl(#12/14/1849 17:32:00#)
Hasil sama dengan:-18278.7305555556

Untuk melihat tanggal dan waktu nilai numerik, ketik perintah berikut di jendela langsung, tekan ENTER, dan kemudian perhatikan hasil:

?CVDate(1.375)
Hasil sama dengan: 12/31/1899 9:00:00 AM

?CVDate(-304398.575)
Hasil sama dengan: 8/1/1066 1:48:00 PM

Format tanggal waktu kolom

Anda dapat memformat tanggal waktu nilai untuk menampilkan tanggal, waktu, atau keduanya. Ketika Anda menggunakan format tanggal saja, akses menyimpan nilai 0 untuk bagian waktu. Ketika Anda menggunakan format waktu-saja, akses menyimpan nilai 0 untuk porsi tanggal.

Tabel berikut ini menunjukkan cara akses menyimpan nilai tanggal waktu. Tabel berikut ini juga menunjukkan bagaimana Anda dapat menampilkan nilai-nilai tersebut dengan menggunakan format yang berbeda:
Stored value Default format Custom format
(double number) (General Date) (mm/dd/yyyy hh:nn:ss A.M./P.M.)
---------------------------------------------------------------------

36295.0 5/15/99 05/15/1999 12:00:00 AM
0.546527777777778 1:07 PM 12/30/1899 01:07:00 PM
36232.9375 3/13/99 10:30PM 03/13/1999 10:30:00 PM
Catatan Format asali untuk nilai tanggal waktu adalah tanggal umum. Jika nilai hanya tanggal, waktu tidak akan ditampilkan. Jika nilai waktu-saja, tanggal tidak akan ditampilkan.

Menghitung data waktu

Karena nilai waktu yang disimpan sebagai pecahan 24 jam sehari, Anda mungkin menerima hasil format yang salah ketika Anda menghitung interval waktu lebih dari 24 jam. Untuk mengatasi perilaku ini, Anda dapat membuat fungsi yang ditetapkan pengguna untuk memastikan bahwa interval waktu diformat dengan benar.

Microsoft menyediakan pemrogaman hanya untuk ilustrasi, tanpa garansi baik tersurat maupun tersirat. Ini mencakup, namun tidak terbatas pada, garansi yang tersirat dapat diperjualbelikan atau kesesuaian untuk tujuan tertentu. Artikel ini menganggap bahwa Anda sudah terbiasa dengan bahasa pemrograman yang ditunjukkan dan terbiasa dengan alat-alat yang digunakan untuk membuat dan prosedur debug. Teknisi dukungan Microsoft dapat membantu menjelaskan fungsionalitas prosedur tertentu, namun mereka tidak akan mengubah contoh tersebut untuk memberikan fungsionalitas tambahan atau menyusun prosedur untuk memenuhi persyaratan khusus Anda. Untuk menghitung dengan benar dan memformat interval waktu, ikuti langkah-langkah berikut:

  1. Membuat modul, dan kemudian ketik baris berikut pada bagian Deklarasi apabila baris berikut ini sudah tidak ada:

    Option Explicit
  2. Ketik prosedur berikut ini:

    '------------------------------------------------------------------
    ' This function calculates the elapsed time between two values and then
    ' formats the result in four different ways.
    '
    ' The function accepts interval arguments such as the following:
    '
    ' #5/12/95 6:00:00AM# - #5/11/95 10:00:00PM#
    '
    '
    '
    ' [End Time]-[Start Time]
    '------------------------------------------------------------------

    Function ElapsedTime (Interval)
    Dim x
    x = Int(CSng(Interval * 24 * 3600)) & " Seconds"
    Debug.Print x
    x = Int(CSng(Interval * 24 * 60)) & ":" & Format(Interval, "ss") _
    & " Minutes:Seconds"
    Debug.Print x
    x = Int(CSng(Interval * 24)) & ":" & Format(Interval, "nn:ss") _
    & " Hours:Minutes:Seconds"
    Debug.Print x
    x = Int(CSng(Interval)) & " days " & Format(Interval, "hh") _
    & " Hours " & Format(Interval, "nn") & " Minutes " & _
    Format(Interval, "ss") & " Seconds"
    Debug.Print x

    End Function
  3. Ketik baris berikut di jendela segera, dan kemudian tekan ENTER:

    ? ElapsedTime(#6/1/1999 8:23:00PM#-#6/1/1999 8:12:12AM#)
    Perhatikan bahwa nilai-nilai berikut ini muncul:

    43848 detik
    730:48 Minutes:Seconds
    12:10:48 Hours:Minutes:Seconds
    0 hari 12 jam 10 menit terakhir

Membandingkan data tanggal

Karena tanggal dan waktu disimpan bersama-sama sebagai angka presisi ganda, Anda mungkin menerima hasil tak terduga ketika Anda membandingkan data tanggal waktu. Sebagai contoh, jika Anda mengetik ekspresi berikut di jendela segera, Anda menerima hasil salah bahkan jika tanggal 3/31/1999:

? Now()=DateValue("3/31/1999")
Fungsi Now() mengembalikan presisi ganda angka yang menunjukkan tanggal dan waktu saat ini. Namun, fungsi DateValue() mengembalikan bilangan bulat angka yang menunjukkan tanggal tetapi tidak nilai pecahan waktu. Oleh karena itu, Now() sama dengan DateValue() hanya ketika Now() kembali waktu 00:00:00 (12:00:00 A.M.).

Untuk menerima hasil yang akurat ketika Anda membandingkan nilai tanggal, gunakan salah satu dari fungsi berikut ini. Untuk menguji fungsi masing-masing, ketik fungsi di jendela langsung, gantilah tanggal saat ini untuk 3/31/1999, dan kemudian tekan ENTER:

  • Untuk mengembalikan nilai bilangan bulat, gunakan fungsi Date() :

    ?Date()=DateValue("3/31/1999")

  • Untuk menghapus komponen pecahan fungsi Now() , gunakan fungsi Int() :

    ?Int(Now())=DateValue("3/31/1999")

Membandingkan data waktu

Ketika Anda membandingkan nilai waktu, Anda mungkin menerima hasil yang tidak konsisten karena nilai waktu yang disimpan sebagai bagian pecahan presisi ganda, floating-point angka. Sebagai contoh, jika Anda mengetik ekspresi berikut di jendela segera, Anda menerima hasil salah (0) meskipun dua kali nilai terlihat sama:

var1 = #2:01:00 PM#
var2 = DateAdd ("n", 10, var1)
? var2 = #2:11:00 PM#
Ketika akses mengkonversi nilai waktu pecahan, hasil dihitung mungkin tidak sama dengan nilai waktu. Perbedaan kecil yang disebabkan oleh perhitungan ini cukup untuk menghasilkan hasil palsu (0) ketika Anda membandingkan nilai yang disimpan ke nilai terus-menerus.

Untuk menerima hasil yang akurat ketika Anda membandingkan nilai waktu, gunakan salah satu metode berikut. Untuk menguji setiap metode, ketik masing-masing metode di jendela segera, dan kemudian tekan ENTER:

Tambahkan tanggal terkait perbandingan waktu:

var1 = #1/1/99 2:01:00 PM#
var2 = DateAdd ("n", 10, var1)
? var2 = #1/1/99 2:11:00 PM#
Mengkonversi nilai waktu untuk jenis data string sebelum Anda membandingkan mereka:

var1 = #2:01:00 PM#
var2 = DateAdd ("n", 10, var1)
? CStr(var2) = CStr(#2:11:00 PM#)
Menggunakan fungsi DateDiff() untuk membandingkan tepat unit detik:

var1 = #2:01:00 PM#
var2 = DateAdd ("n", 10, var1)
? DateDiff ("s", var2, # 2:11:00 PM #) = 0

Referensi

Untuk informasi selengkapnya tentang menghitung nilai tanggal dan waktu nilai, klik nomor artikel berikut ini untuk melihat artikel di Pangkalan Pengetahuan Microsoft:

Fungsi 210604 untuk menghitung dan menampilkan nilai-nilai tanggal waktu akses

Untuk informasi selengkapnya tentang cara memformat jenis data tanggal waktu, klik Bantuan Microsoft Access
Menu bantuan , ketik format properti - tanggal/waktu jenis data di bantuan Office atau Wisaya jawaban, dan kemudian klik pencarian untuk melihat topik.

Perlu bantuan lainnya?

Kembangkan keterampilan Anda
Jelajahi pelatihan
Dapatkan fitur baru terlebih dahulu
Gabung Microsoft Insider

Apakah informasi ini bermanfaat?

Seberapa puaskah Anda dengan kualitas terjemahannya?
Apa yang memengaruhi pengalaman Anda?

Terima kasih atas umpan balik Anda!

×