Bagaimana untuk menyimpan, menghitung, dan membandingkan data tanggal dalam Microsoft Access

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 210276 - Melihat produk di mana artikel ini berlaku.
Untuk versi Microsoft Access 97 artikel ini, Lihat 130514.
Moderat: Memerlukan dasar makro, coding, dan interoperabilitas keterampilan.

Perbesar semua | Perkecil semua

Pada Halaman ini

RINGKASAN

Artikel ini menjelaskan bagaimana Microsoft Access toko Tanggal/waktu tipe data. Artikel ini juga menjelaskan mengapa Anda dapat menerima tak terduga hasil ketika Anda menghitung tanggal dan waktu atau membandingkan tanggal dan kali.

Artikel ini menjelaskan topik-topik berikut:
  • Menyimpan data tanggal/waktu
  • Format bidang tanggal/waktu
  • Menghitung waktu data
  • Membandingkan data tanggal
  • Membandingkan time data

INFORMASI LEBIH LANJUT

Menyimpan data tanggal/waktu

Akses toko tipe data tanggal sebagai presisi ganda, floating-point nomor hingga 15 desimal. Bagian bilangan bulat Double-precision angka menunjukkan tanggal. Bagian desimal mewakili waktu.

Tanggal nilai jangkauan dari-657,434 (Januari 1, 100 Masehi) 2,958,465 (Desember 31, 9999 Masehi). Nilai tanggal 0 mewakili 30 Desember 1899. Akses toko tanggal sebelum 30 Desember 1899 sebagai negatif nomor.

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

Tabel berikut menunjukkan bagaimana akses toko Tanggal/waktu nilai:
   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-nilai tanggal sebagai angka, ketik Setelah perintah di jendela segera, tekan ENTER, dan kemudian melihat 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-nilai numerik, ketik perintah berikut segera jendela, tekan ENTER, dan kemudian melihat hasil:
?CVDate(1.375)
Hasil sama: 12/31/1899 9: 00: 00 AM
?CVDate(-304398.575)
Sama dengan hasil: 8/1/1066 1: 48: 00 PM

Format bidang tanggal/waktu

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

Tabel berikut menunjukkan bagaimana akses toko tanggal/waktu nilai-nilai. Tabel berikut juga menunjukkan bagaimana Anda dapat menampilkan nilai-nilai tersebut oleh 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 standar untuk nilai tanggal/waktu adalah umum tanggal. Jika nilai hanya tanggal, waktu tidak muncul. Jika nilai waktu-only, tidak ada tanggal muncul.

Menghitung waktu data

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

Microsoft menyediakan contoh pemrograman hanya sebagai ilustrasi, tanpa jaminan apa pun baik tersurat maupun tersirat. Termasuk, namun tidak terbatas pada, jaminan tersirat mengenai kelayakan untuk diperdagangkan atau kesesuaian untuk keperluan tertentu. Artikel ini mengasumsikan bahwa Anda telah terbiasa dengan bahasa pemrograman yang ditunjukkan dan dengan alat yang digunakan untuk membuat dan mendebug prosedur. Teknisi dukungan Microsoft dapat membantu menjelaskan fungsionalitas prosedur tertentu, namun mereka tidak akan memodifikasi contoh untuk memberikan fungsionalitas tambahan atau menyusun prosedur untuk memenuhi persyaratan khusus Anda. Untuk benar menghitung dan format waktu interval, ikuti langkah berikut:
  1. Buat modul, dan kemudian ketik baris berikut di Deklarasi bagian jika baris berikut sudah tidak ada:
    Option Explicit
    					
  2. Jenis prosedur berikut:
    '------------------------------------------------------------------
    '  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: 00 PM #-# 6/1/1999 8: 12: 12 AM #)
    Perhatikan bahwa nilai berikut muncul:
    43848 Detik
    730:48 Menit:
    12: 10: 48 Jam: menit:
    0 hari 12 jam 10 menit 48 detik

Membandingkan data tanggal

Karena tanggal dan waktu disimpan bersama sebagai double-precision angka, Anda akan menerima hasil yang tak terduga ketika Anda membandingkan data waktu. Sebagai contoh, jika Anda mengetik ungkapan berikut di jendela segera, Anda menerima Palsu menghasilkan bahkan jika hari ini adalah 3/31/1999:
? Now()=DateValue("3/31/1999")
The Now) fungsi mengembalikan nomor presisi ganda yang mewakili tanggal dan waktu saat ini. Namun, DateValue() fungsi mengembalikan jumlah bilangan bulat yang mewakili tanggal tetapi tidak nilai waktu pecahan. Oleh karena itu, Now) sama dengan DateValue() hanya ketika Now) kembali waktu 00: 00: 00 (12: 00: 00 pagi).

Untuk menerima hasil yang akurat ketika Anda membandingkan nilai-nilai tanggal, gunakan salah satu dari berikut fungsi. Untuk menguji setiap fungsi, ketik fungsi di jendela segera, mengganti tanggal 3/31/tahun 1999, dan kemudian tekan ENTER:
  • Untuk mengembalikan nilai integer, menggunakan Date() pada PHP fungsi:
    ?Date()=DateValue("3/31/1999")
  • Untuk menghapus bagian fraksional Now) fungsi, menggunakan Int() fungsi:
    ?Int(Now())=DateValue("3/31/1999")

Membandingkan time data

Ketika Anda membandingkan nilai-nilai waktu, Anda mungkin menerima tidak konsisten hasil karena nilai waktu disimpan sebagai bagian fraksional Double-precision, floating-point nomor. Sebagai contoh, jika Anda ketik berikut ekspresi di jendela langsung, Anda menerima akibat palsu (0) meskipun waktu dua nilai terlihat sama:
var1 = # 2: 01: 00 PM #
var2 = DateAdd ("n", 10, var1)
? var2 = # 2: 11: 00 am #
Ketika akses mengkonversi nilai waktu untuk sebagian kecil, yang dihitung hasil mungkin tidak identik dengan nilai waktu. Perbedaan kecil yang disebabkan oleh perhitungan cukup untuk menghasilkan hasil palsu (0) ketika Anda membandingkan nilai tersimpan untuk nilai konstan.

Untuk menerima hasil yang akurat ketika Anda membandingkan nilai-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 untuk perbandingan waktu:
var1 = # 1/1/99 2: 01: 00 PM #
var2 = DateAdd ("n", 10, var1)
? var2 = # 1/1/99 2: 11: 00 am #
Mengubah nilai-nilai waktu tipe 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 unit tepat seperti detik:
var1 = # 2: 01: 00 PM #
var2 = DateAdd ("n", 10, var1)
? DateDiff ("s", var2, # 2: 11: 00 PM #) = 0

REFERENSI

Untuk informasi lebih lanjut tentang menghitung nilai-nilai tanggal dan waktu nilai-nilai, klik nomor artikel di bawah ini untuk melihat artikel di dalam Basis Pengetahuan Microsoft:
210604Fungsi untuk menghitung dan untuk menampilkan nilai-nilai tanggal dalam akses
Untuk informasi lebih lanjut tentang bagaimana untuk memformat data Date/Time jenis, klik Microsoft akses bantuan padaBantuan menu, jenis format properti - tanggal tipe data di kantor asisten atau jawaban Wizard, dan kemudian klik Mencari untuk melihat topik.

Properti

ID Artikel: 210276 - Kajian Terakhir: 19 September 2011 - Revisi: 2.0
Berlaku bagi:
  • Microsoft Office Access 2007
  • Microsoft Office Access 2003
  • Microsoft Access 2002 Standard Edition
  • Microsoft Access 2000 Standard Edition
Kata kunci: 
kbdatetime kbfunctions kbinfo kbhowto kbprogramming kbmt KB210276 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:210276

Berikan Masukan

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com