Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analitik Platform Sistemi (PDW)
Microsoft Fabric'te SQL veritabanı
OLE DB sürücüsünü indirme
Bu bölümde, tarih saati ile tarih sapması değerleri arasında nasıl dönüştürüleceği tartışılır. Bu bölümde tanımlanan dönüşümler ya OLE DB tarafından zaten sağlanmıştır ya da OLE DB'nin tutarlı bir uzantısıdır.
OLE DB'deki tarih ve saatler için literal ve dizide format genellikle ISO'yu takip eder ve istemci konumuna bağlı değildir. Bir istisna DBTYPE_DATE, burada standart OLE Otomasyonudur. Ancak, SQL Server için OLE DB Sürücüsü yalnızca veriler istemciye veya istemciden iletildiğinde türler arasında dönüştürdüğü için, bir uygulamanın SQL Server için OLE DB Sürücüsünü DBTYPE_DATE ve dizi formatları arasında dönüştürmeye zorlaması mümkün değildir. Aksi takdirde, dizilerle aşağıdaki formatlar kullanılır (parantez içindeki metin isteğe bağlı bir öğeyi gösterir):
Datetime ve datetimeoffset dizlerinin formatı şudur:
yyyy-Mm-dd[hh:mm:ss[.9999999][ ± hh:mm]]
Zaman dizileri formatı şudur:
hh:mm:ss[.9999999]
Tarih dizileri formatı şudur:
yyyy-Mm-Dd
Uyarı
SQL Server Native Client ve SQLOLEDB'nin önceki sürümleri, standart dönüşümler başarısız olursa OLE dönüşümlerini uygulardı. SQL Server için OLE DB Sürücüsü, SQL Server Native Client ile aynı davranışı takip eder. Sonuç olarak, SQL Server için OLE DB Sürücüsü tarafından yapılan bazı dönüşümler, OLE DB spesifikasyonundan farklıdır.
Tellerden yapılan dönüşümler, beyaz alan ve alan genişliğinde esneklik sağlar. Daha fazla bilgi için, OLE DB Tarih ve Zaman İyileştirmeleri için Veri Tipi Desteği bölümündeki "Veri Formatları: Dizler ve Literallar" bölümüne bakınız.
Aşağıda genel dönüşüm kuralları bulunmaktadır:
Bir dizi tarih/saat türüne dönüştürüldüğünde, dizi önce ISO literali olarak ayrıştırılır. Eğer bu başarısız olursa, dizi zaman bileşenlerine sahip bir OLE tarih literali olarak ayrıştırılır.
Eğer zaman yoksa ama alıcı zamanı depolayabiliyorsa, zaman sıfıra ayarlanır. Eğer tarih yoksa ancak alıcı bir tarihi kaydedebiliyorsa, tarih ISO dönüşümlerinin kullanıldığı mevcut tarihe ve OLE dönüşümlerinin kullanıldığı 1899-12-30 olarak ayarlanır.
İstemcinin kullandığı veri türünde herhangi bir zaman dizimi yoksa, ancak sunucu zaman dilimini depolayabiliyorsa, istemci üzerindeki verilerin istemci zaman diliminde olduğu varsayılır.
Sunucuda herhangi bir saat dilimi yoksa ancak istemci zaman dilimi bilgisine sahipse, UTC saat dilimi varsayılır. Bu, sunucu davranışından farklıdır.
Zaman varsa ancak alıcı zamanı depolayamıyorsa, zaman bileşeni göz ardı edilir.
Tarih varsa ancak alıcı tarihi saklayamıyorsa, tarih bileşeni göz ardı edilir.
İstemciden sunucuya dönüşüm sırasında saniye veya kısmal saniye kesintisi gerçekleşirse, DB_E_ERRORSOCCURRED geri döner ve durum DBSTATUS_E_DATAOVERFLOW ayarlanır.
Sunucudan istemciye dönüşüm sırasında saniye veya kısmal saniye kesintisi gerçekleşirse, DBSTATUS_S_TRUNCATED ayarlanır
Bu Kısımda
İstemciden sunucuya dönüşümler
SQL Server 2008 (10.0.x) için OLE DB Driver ile yazılmış bir istemci uygulaması ile sonraki sürümler arasında yapılan tarih/saat dönüşümlerini tanımlar.
Sunucudan İstemciye Yapılan Dönüşümler
SQL Server 2008 (10.0.x) ve sonraki sürümler arasında yapılan tarih/saat dönüşümlerini ve SQL Server için OLE DB Driver ile yazılmış bir istemci uygulamasını tanımlar.