Tarih/Saat Genişletilmiş veri türünü kullanma

Uygulandığı Öğe
Microsoft 365 için Access Access 2024 Access 2021

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).

Tarih/Saat Genişletilmiş Aralığı Uyarısı Access'teki Tarih/Saat Genişletilmiş veri türüne göre ifadeler oluşturduğunuzda ve 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 makalede

Tarih/Saat ve Tarih/Saat Genişletilmiş veri türlerini karşılaştırma Tarih/Saat Genişletilmiş veri türünü kullanma Geriye dönük uyumlulukla ilgili dikkat edilmesi gerekenler 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

Sayfanın Başı

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 büyük veri aralığından ve daha yüksek duyarlıklardan yararlanmak için Bir Access tablosuna 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ğerlerinin girilmesi Tarih/Saat veri türüne benzer, ancak kesirli 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 denetlemek için Tablo'yu açın, şeritte Alanlar'ı seçin ve Biçimlendirme grubunda Ondalıkları ArtırDüğme görüntüsü veya Ondalıkları AzaltDüğme resmi'ni 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'in 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ğlama ve içeri aktarma Ayrıca, SQL Server datetime2 veri türü gibi ilgili veri türüne sahip veritabanlarına bağlanabilir veya 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şmiş Tarih ve Saat Özelliklerini (OLE DB) Kullanma.

Formlar ve raporlar Tarih/Saat Genişletilmiş veri türünü bir forma veya rapora 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

Sayfanın Başı

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.

Sayfanın Başı

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 Uzatıldı
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 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 görüntüleri görüntüler:

Ayın günü: 1
Ayın günü: 1

Sorgu ifadelerinde Genişletilmiş Tarih/Saat ile çalışan işlevler

Aşağıdaki işlevler sorgu ifadelerinde Genişletilmiş Tarih/Saat ile çalışır:
​​​​​​​
Year, Month, Weekday, Day, Hour, Minute, Second, DateAdd, DateDiff ve DatePart.

Ayrıca, hesaplamanın Bir Tarih/Saat Genişletilmiş değeri üretmesi gerektiğini belirlemek için bağımsız değişken türünü kullanabilen bazı işlevlerin Genişletilmiş sürümleri vardır. Bu durumlar:

DateValueExtended, TimeValueExtended, DateSerialExtended, TimeSerialExtended, NowExtended, DateExtended, DateTimeExtended ve TimeExtended.

Bu işlevler, sonunda "Genişletilmiş" olmadan işlevle aynı şekilde çalışır, ancak Tarih/Saat değeri yerine Tarih/Saat Genişletilmiş değeri döndürür.

VBA'nın değiştirilmediğini, yeni işlevlerin VBA kodunda tanınmayacağını ve mevcut işlevlerin Tarih/Saat Genişletilmiş değerleriyle çalışmayacağını unutmayın.

Örnek

Özgün sorgu:


Select DateValue([OrderDate]) AS OrderDateOnly_DateValue

, Format([OrderDate],"Short Date") AS OrderDateOnly_Format

From tblOrders

Şimdi DateValue([OrderDate]) değerini DateValueExtended([OrderDate]) olarak değiştirin; bu da ilk ifadeyi düzeltir.

Access'in Tarih/Saat Genişletilmiş sütunları için Biçim işlevini işlemediğini unutmayın; yalnızca sütun için Format özelliğini ayarlayabilirsiniz.

Bu nedenle, şunu kullanırsanız:


SELECT DateValueExtended([OrderDate]) AS OrderDateOnly_DateValue, Table1.OrderDate

FROM Table1;

İkinci sütunun Format özelliğini "Kısa Tarih" olarak ayarladığınızda istediğiniz sonuçları elde edersiniz.

Sayfanın Başı

Ayrıca Bkz.

Veri türlerine ve alan özelliklerine giriş

Tarih ve saat alanını biçimlendirme

Tarih ve saat alanı oluşturma veya silme