Tarih/Saat Genişletilmiş veri türü, tarih ve saat bilgilerini depolar ve Tarih/Saat veri türüne benzer, ancak daha geniş bir tarih aralığı, daha yüksek kesirli doğruluk ve SQL Server datetime2 tarih türüyle uyumluluk sağlar. Access verilerini içeri aktardığınızda veya SQL Server’a bağladığınızda, Access Tarih/Saat Genişletilmiş alanını sürekli olarak SQL Server datetime2 sütununa eşleyebilirsiniz. Daha fazla bilgi için bkz. datetime2 (Transact-SQL).
Uyarı İfadeler oluşturduğunuzda ve Access’teki Tarih/Saat Genişletilmiş veri türüne göre tarih/saat işlevlerini kullandığınızda, hesaplamalarda duyarlığı kaybedebilir veya sonuçlarla ilgili başka sorunlarla karşılaşabilirsiniz. Bu sorunun farkındayız ve önümüzdeki sürümlerde ifadeleri ve işlevleri daha iyi desteklemeyi planlıyoruz. Geçici bir çözüm olarak, eşdeğer SQL Server ifadesini ve tarih/saat işlevlerini kullanmak için doğrudan sorgu oluşturabilirsiniz. Daha fazla bilgi için bkz. Access SQL ile SQL Server TSQL’i Karşılaştırma.
Bu makalenin başlıkları
Tarih/Saat ve Tarih/Saat Genişletilmiş veri türlerini karşılaştırma |
VBA’da Tarih/Saat Genişletilmiş veri türünü dize olarak kullanma |
Tarih/Saat ve Tarih/Saat Genişletilmiş veri türlerini karşılaştırma
Aşağıdaki tablolar, iki veri türü arasındaki önemli farklılıkları özetler.
Öznitelik |
Tarih/Saat |
Tarih/Saat Genişletilmiş |
---|---|---|
En Küçük Değer |
01.01.100 00:00:00 |
01.01.0001 00:00:00 |
En Büyük Değer |
31.12.9999 23:59:59.999 |
31.12.9999 23:59:59.9999999 |
Doğruluk |
0.001 saniye |
1 nanosaniye |
Boyut |
Çift hassasiyetli kayan nokta |
42 baytlık kodlanmış dize |
Tarih/Saat Genişletilmiş veri türünü kullanma
Aşağıdaki bilgiler önemli kullanım konularını açıklamaktadır.
Tablo Tasarımı Görünümü Daha geniş veri aralığından ve daha yüksek duyarlıktan yararlanmak için, Access tablosuna bir alan ekleyebilirsiniz. Ayrıca Tablo Tasarım görünümünde Tarih/Saat veri türünü Tarih/Saat Genişletilmiş veri türüne de dönüştürebilirsiniz. Bu veri türünün birincil anahtar alanı olarak kullanılması da desteklenir. Daha fazla bilgi için bkz. Tablo oluşturma ve alan ekleme.
Tarih ve saati girme Tarih ve saat değerlerini girme işlemi Tarih/Saat veri türüyle benzerdir, ancak kesirli bir nanosaniye de girebilirsiniz. Örneğin:
-
Giriş biçimi: gg.aa.yyyy ss:dd:ss.nnnnnnn
-
Örnek: 15.06.1215 09:25:3.234
7’den fazla kesir nanosaniye varsa, 7 basamağa yuvarlanır. Kesirli nanosaniyelerin görüntülenmesini kontrol etmek için Tablo'yu açın, şeritteki Alanlar seçeneğini belirleyin ve Biçimlendirme grubunda Ondalıkları Artır veya Ondalık Sayıları Azalt ’ı seçin.
Biçimlendirme Hem Tarih/Saat hem de Tarih/Saat Genişletilmiş veri türleri, Genel Tarih, Uzun Tarih, Orta Tarih, Kısa Tarih, Uzun Saat, Orta Saat ve Kısa Saat ile benzer standart biçimlendirme dizelerini kullanır ve her ikisi de özel biçimlendirmeyi destekler. Tarih/Saat Genişletilmiş veri türü için, zamana dayalı standart formatlar da nanosaniye için kesirli hassasiyeti destekler. Tarih/Saat Biçimlendirmesi Genişletilmiş veri türü varsayılan olarak Genel Tarih ve Uzun Saat biçimlerine sahiptir ve Windows bölgesel ayarlarında belirtilen seçenekleri izler. Ondalık noktasının sağındaki basamak sayısını (1-7) belirtmek için Ondalık Basamaklar özelliğini kullanarak kesirli duyarlığın biçimlendirmesini de kontrol edebilirsiniz.
Bağlantı ve içeri aktarma Ayrıca, SQL Server datetime2 tamsayı veri türü gibi buna karşılık gelen bir veri türündeki veritabanlarına bağlanabilir veya bu veritabanlarından içeri aktarabilirsiniz. SQL Server sürüm 2014 veya üstü veritabanları desteklenir. Tarih/Saat Genişletilmiş veri türü, SQL Server için Microsoft ODBC Sürücüsü 11 ve sonrasının kullanılmasını gerektirir. SQL Server için Microsoft ODBC Sürücüsü 13.1’i kullanmanızı öneririz. OLE DB kullanımı da desteklenir. Daha fazla bilgi için bkz. ODBC Tarih ve Saat Geliştirmeleri için Veri Türü Desteği ve Geliştirilmiş Tarih ve Saat Özelliklerini Kullanma (OLE DB).
Formlar ve raporlar Bir forma veya rapora Tarih/Saat Genişletilmiş veri türü ekleyebilirsiniz. Bir formda, tarih seçiciyi ve giriş maskesini, daha geniş aralıklı bir tarih girmek için kullanabilirsiniz, ancak nanosaniye için kesirli duyarlığı kullanamazsınız.
İfade Desteği Tarih/Saat Genişletilmiş veri türü, SQL Toplama İşlevleri ve ifade değerlendirmesini destekler. Örneğin, LoggedDateTime’ı Tarih/Saat Genişletilmiş veri türünü içeren bir alan olarak kullanma:
Görev |
Örnek |
Sonuç |
---|---|---|
En küçük değeri bulma |
Min(LoggedDateTime) |
Aralık içindeki en erken tarih ve saat |
Ayı ayıklama |
Month(LoggedDateTime) |
Ay adı, örneğin Ocak |
Bir gün ekleyin |
[LoggedDateTime]+1 |
Salı Çarşamba olur |
Geriye Dönük Uyumlulukta Dikkate Alınacak Noktalar
Tarih/Saat Genişletilmiş veri türü, Microsoft Access’in önceki sürümleriyle uyumlu değildir. Tür yerel access tablosunda kullanılıyorsa, özelliği içermeyen Access sürümleri veritabanını açamaz.
Bağlantılı/lmported Tablolar için Geçerli Veritabanı Erişimi Desteği Tarih/Saat Genişletilmiş Veri Türü seçeneğiyle işlemleri bağlamak ve içeri aktarmak için Tarih/Saat Genişletilmiş veri türünü etkinleştirebilir veya devre dışı bırakabilirsiniz. Daha fazla bilgi için bkz. Geçerli veritabanı için kullanıcı seçeneklerini ayarlama.
VBA’da Tarih/Saat Genişletilmiş veri türünü dize olarak kullanma
Aşağıdaki VBA örnekleri, aşağıdaki tabloyu temel alarak Tarih/Saat Genişletilmiş veri türünü görüntülemek, girmek ve değerlendirmek için DAO yöntemlerini kullanır.
Kimlik |
DTEData |
DTData |
1 |
01.01.2 1:01:03.1234567 ÖÖ |
01.01.2001 |
Tablo adı: DTETable
Kimlik veri türü: OtomatikSayı DTEData veri türü: Tarih/Saat Genişletilmiş DTData veri türü: Tarih/SaatÖrnek: Tarih ve saati görüntüleme
Aşağıdaki örnek, tarih ve saati gösterir. Kullanılan biçim, 24 saatlik saat biçiminde gg.aa.yyy ss:dd:ss.nnnnnnn şeklindedir. Biçim özelleştirilemez.
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
Sonuç Access şu şekilde görüntüler: 01.01.0002 01:01:03.1234567.
Örnek: Tarih ve saati girme
Aşağıdaki örnek, bir dize biçimi kullanarak tarih ve saati girer. Tüm standart tarih ve saat biçimleri desteklenir.
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
Sonuç Access yeni bir satır ekler (KIMLIK = 2):
Kimlik |
DTEData |
DTData |
1 |
01.01.2 1:01:03.1234567 ÖÖ |
01.01.2001 |
2 |
01.01.9999 1:01:01.0123000 ÖÖ |
01.01.2001 |
Örnek: Sorgu ifadesini değerlendirme
Aşağıdaki örnek, tarih ve saat alanlarından gün sayısını ayıklamak için Gün İşlevi’ni kullanır.
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
Sonuç Access şu şekilde görüntüler:
Ayın günü: 1
Ayın günü: 1Ayrıca Bkz:
Veri türlerine ve alan özelliklerine giriş