Tipe data Diperluas Tanggal/Waktu menyimpan informasi tanggal dan waktu serta serupa dengan tipe data Tanggal/Waktu, tetapi menyediakan rentang tanggal yang lebih besar, presisi fraksional yang lebih tinggi, dan kompatibilitas dengan tipe tanggal datetime2 SQL Server. Ketika mengimpor atau menautkan data Access ke SQL Server, Anda dapat secara konsisten memetakan bidang Tanggal/Waktu Akses yang Diperluas ke kolom SQL Server datetime2. Untuk informasi selengkapnya, lihat datetime2 (Transact-SQL).
Peringatan Ketika membuat ekspresi dan menggunakan fungsi tanggal/waktu berdasarkan tipe data Tanggal/Waktu yang Diperluas di Access, Anda mungkin kehilangan presisi dalam penghitungan atau mengalami masalah lain dengan hasil. Kami menyadari masalah ini dan berencana untuk mendukung ekspresi dan fungsi dengan lebih baik dalam rilis mendatang. Sebagai solusinya, Anda dapat Membuat kueri pass-through untuk menggunakan ekspresi SQL Server dan fungsi tanggal/waktu yang setara. Untuk informasi selengkapnya, lihat Membandingkan Access SQL dengan SQL Server TSQL.
Di artikel ini
Membandingkan tipe data Tanggal/Waktu dan Tanggal/Waktu yang diperluas
Tabel berikut merangkum perbedaan penting antara kedua tipe data.
| Atribut | Tanggal/Waktu | Tanggal/waktu diperpanjang |
|---|---|---|
| Nilai minimum | 100-01-01 00:00:00 | 0001-01-01 00:00:00 |
| Nilai maksimum | 9999-12-31 23:59:59.999 | 9999-12-31 23:59:59.9999999 |
| Akurasi | 0,001 detik | 1 nanodetik |
| Ukuran | Titik mengambang presisi ganda | String berkode 42 byte |
Menggunakan tipe data Perpanjangan Tanggal/Waktu
Informasi berikut menjelaskan pertimbangan penggunaan yang penting.
Tampilan Desain Tabel Untuk memanfaatkan rentang data yang lebih besar dan presisi yang lebih tinggi, Anda dapat menambahkan bidang ke tabel Access. Anda juga dapat mengonversi tipe data Tanggal/Waktu menjadi Tanggal/Waktu yang Diperluas dalam tampilan Desain Tabel. Penggunaan tipe data ini sebagai bidang kunci utama juga didukung. Untuk informasi selengkapnya, lihat Membuat tabel dan menambahkan bidang.
Memasukkan tanggal dan waktu Memasukkan nilai tanggal dan waktu serupa dengan tipe data Tanggal/Waktu, kecuali Anda juga dapat memasukkan nanodetik pecahan. Misalnya:
- Format entri: mm/dd/yyyy hh:mm:ss.nnnnnnn
- Contoh: 15/06/1215 09:25:3.234
Jika ada lebih dari 7 nanodetik pecahan, mereka dibulatkan menjadi 7 digit. Untuk mengontrol tampilan nanodetik pecahan, buka Tabel, pada pita pilih Bidang, dan di grup Pemformatan, pilih
Desimal atau
Desimal.
Pemformatan Tipe data Tanggal/Waktu dan Tanggal/Waktu Diperluas menggunakan string pemformatan standar yang serupa yaitu Tanggal Umum, Tanggal Panjang, Tanggal Sedang, Tanggal Pendek, Waktu Panjang, WaktuSedang, dan Waktu Pendek dan keduanya mendukung pemformatan kustom. Untuk tipe data Tanggal/Waktu yang Diperluas, format standar berbasis waktu juga mendukung presisi fraksional untuk nanodetik. Pemformatan tipe data Tanggal/Waktu Diperpanjang secara default ke format Tanggal Umum dan Waktu Panjang serta mengikuti opsi yang ditentukan dalam pengaturan regional Windows. Anda juga dapat mengontrol pemformatan presisi pecahan dengan menggunakan properti Decimal Places untuk menentukan jumlah digit di sebelah kanan koma desimal (1-7).
Tautkan dan impor Anda juga dapat menautkan ke atau mengimpor dari database dengan tipe data yang sesuai, seperti tipe data SQL Server datetime2. Database SQL Server versi 2014 atau yang lebih baru didukung. Tipe data Tanggal/Waktu yang Diperpanjang memerlukan penggunaan Microsoft ODBC Driver untuk SQL Server 11 atau yang lebih baru. Sebaiknya gunakan Microsoft ODBC Driver 13.1 untuk SQL Server. Penggunaan OLE DB juga didukung. Untuk informasi selengkapnya, lihat Dukungan Tipe Data untuk Peningkatan Tanggal dan Waktu ODBC serta Menggunakan Fitur Tanggal dan Waktu yang Ditingkatkan (OLE DB).
Formulir dan laporan Anda dapat menambahkan tipe data Diperpanjang Tanggal/Waktu ke formulir atau laporan. Dalam formulir, Anda dapat menggunakan pemilih tanggal dan masker input untuk memasukkan tanggal dengan rentang yang lebih besar, tetapi tidak dengan presisi fraksional untuk nanodetik.
Dukungan Ekspresi Tipe data Tanggal/Waktu yang Diperluas mendukung Fungsi Agregat SQL dan evaluasi ekspresi. Misalnya, menggunakan LoggedDateTime sebagai bidang dengan tipe data Date/Time Extended:
| Tugas | Contoh | Hasil |
|---|---|---|
| Temukan nilai minimum | Min(LoggedDateTime) | Tanggal dan waktu paling awal dalam rentang tersebut |
| Ekstrak bulan | Month(LoggedDateTime) | Nama bulan, seperti Januari |
| Menambahkan satu hari | [LoggedDateTime]+1 | Selasa akan menjadi Rabu |
Pertimbangan Kompatibilitas Mundur
Tipe data Tanggal/Waktu yang Diperpanjang tidak kompatibel dengan versi Microsoft Access sebelumnya. Jika tipe digunakan dalam tabel Access lokal, versi Access yang tidak menyertakan fitur tidak akan dapat membuka database.
Anda dapat mengaktifkan atau menonaktifkan tipe data Tanggal/Waktu yang Diperluas untuk menautkan dan mengimpor operasi dengan opsi Akses Database Saat IniMendukung Tipe Data yang Diperluas Tanggal/Waktu untuk Tabel yang Ditautkan/Diportasikan. Untuk informasi selengkapnya, lihat Mengatur opsi pengguna untuk database saat ini.
Menggunakan tipe data Tanggal/Waktu yang Diperpanjang sebagai string di VBA
Contoh VBA berikut menggunakan metode DAO untuk menampilkan, memasukkan, dan mengevaluasi tipe data Tanggal/Waktu yang Diperpanjang berdasarkan tabel di bawah ini.
| ID | DTEData | DTData |
|---|---|---|
| 1 | 1/1/2 1:01:03.1234567 AM | 1/1/2001 |
Nama tabel: DAPAT DI-DTET
Tipe data ID: Penomoran otomatis
Tipe data DTEData: Tanggal/waktu diperpanjang
Tipe data DTData: Tanggal/Waktu
Contoh: Menampilkan tanggal dan waktu
Contoh berikut menampilkan tanggal dan waktu. Format yang digunakan adalah mm/dd/yyyy hh:mm:ss.nnnnnnn dalam jam 24 jam. Formatnya tidak dapat disesuaikan.
Dim db As Database
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("DTETable")
Do Until rs.EOF
Debug.Print rs!DTETable
rs.MoveNext
Loop
Hasil Akses tampilan: 01/01/0002 01:01:03.1234567.
Contoh: Memasukkan tanggal dan waktu
Contoh berikut memasukkan tanggal dan waktu menggunakan format string. Semua format tanggal dan waktu standar didukung.
Dim db As Database
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("DTETable")
With CurrentDb.OpenRecordset("DTETable")
.AddNew
![DTEData] = "1/1/9999 1:1:1.0123 AM"
![DTData] = #1/1/2001#
.Update
End With
Hasil Access menambahkan baris baru (ID = 2):
| ID | DTEData | DTData |
|---|---|---|
| 1 | 1/1/2 1:01:03.1234567 AM | 1/1/2001 |
| 2 | 1/1/9999 1:01:01.0123000 AM | 1/1/2001 |
Contoh: Mengevaluasi ekspresi kueri
Contoh berikut ini menggunakan Fungsi Hari untuk mengekstrak nomor hari dari bidang tanggal dan waktu.
Dim db As Database
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("SELECT Day(DTEData) as day FROM DTETable")
Do Until rs.EOF
Debug.Print "The day of the month is: "&rs!day
rs.MoveNext
Loop
Hasil Akses tampilan:
Hari dalam sebulan adalah: 1
Hari dalam sebulan adalah: 1
Fungsi yang berfungsi dengan Tanggal/Waktu Diperluas dalam ekspresi kueri
Fungsi berikut berfungsi dengan Tanggal/Waktu Diperpanjang dalam ekspresi kueri:
Tahun, bulan, hari kerja, hari, jam, menit, detik, dateAdd, DateDiff, dan datePart.
Selain itu, terdapat versi Extended dari beberapa fungsi yang tidak dapat menggunakan tipe argumen untuk menentukan bahwa penghitungan harus menghasilkan nilai Diperpanjang Tanggal/Waktu. Ini adalah:
DateValueExtended, TimeValueExtended, DateSerialExtended, TimeSerialExtended, NowExtended, DateExtended, DateTimeExtended, dan TimeExtended.
Fungsi ini bekerja dengan cara yang sama seperti fungsi tanpa "Diperpanjang" di akhir, tetapi mengembalikan nilai Diperpanjang Tanggal/Waktu, bukan nilai Tanggal/Waktu.
Perhatikan bahwa VBA belum dimodifikasi, fungsi baru tidak akan dikenali dalam kode VBA, dan fungsi yang ada tidak akan berfungsi dengan nilai Diperpanjang Tanggal/Waktu.
Contoh
Kueri asli:
Select DateValue([OrderDate]) AS OrderDateOnly_DateValue
, Format([OrderDate],"Short Date") AS OrderDateOnly_Format
From tblOrders
Sekarang, ubah DateValue([OrderDate]) menjadi DateValueExtended([OrderDate]), yang akan memperbaiki ekspresi pertama.
Perhatikan bahwa Access tidak menangani fungsi Format untuk kolom Tanggal/Waktu yang Diperluas; Anda cukup mengatur properti Format untuk kolom tersebut.
Oleh karena itu, jika Anda menggunakan:
SELECT DateValueExtended([OrderDate]) AS OrderDateOnly_DateValue, Table1.OrderDate
FROM Table1;
Dan atur properti Format untuk kolom kedua ke "Short Date", Anda akan mendapatkan hasil yang Anda inginkan.
Lihat Juga
Pengenalan tipe data dan properti bidang