Powiązania i Conversions (OLE DB)
W tej sekcji omówiono sposób konwersji między datetime i datetimeoffset wartości. Konwersje, opisane w tej sekcji albo są już udostępniane przez OLE DB lub są spójne rozszerzenie OLE DB.
Format literały i ciągów dla daty i godziny w OLE DB zwykle następuje ISO, a nie jest zależna od regionalny klient.Jedyny wyjątek polega na DBTYPE_DATE, w którym standardowe jest automatyzacja OLE.Jednak ponieważ SQL Server Macierzysta klient tylko konwertuje między typami, gdy dane są przesyłane do lub z klient, nie ma możliwości dla aplikacji wymusić SQL Server Macierzysta klient do konwersji między formatami DBTYPE_DATE i ciąg znaków. W przeciwnym wypadku ciągów użyj następujących formatów (tekst w nawiasach oznacza element opcjonalny):
Format datetime i datetimeoffset ciągi znaków jest:
yyyy-mm-dd[ hh:mm:ss[.9999999][ ± hh:mm]]
Format time ciągi znaków jest:
hh:mm:ss[.9999999]
Format date ciągi znaków jest:
yyyy-mm-dd
Uwaga
We wcześniejszych wersjach SQL Server Macierzysta klient i SQLOLEDB implementowane konwersje OLE, przypadek konwersji standardowych nie powiodło się. W rezultacie niektóre zestawami przez SQL Server Macierzysta 10.0 klient różnią się od specyfikacji OLE DB.
Podczas konwersji z ciągów znaków pozwalają w elastyczny sposób odstępu i szerokości pole.Aby uzyskać więcej informacji, zobacz temat "formatów danych: Ciągi i literały"w sekcjiObsługa typu danych OLE DB Data/Godzina ulepszenia.
Reguły konwersji głównej są następujące:
Jeśli ciąg jest konwertowany na datę / czas typu ciąg znaków jest najpierw analizowany jako literał ISO.Jeśli wykonanie polecenia nie powiedzie się, jak ono OLE data literał, który zawiera składniki czas jest analizowany ciąg.
Jeżeli czas nie jest obecny, ale odbiorca może przechowywać czasu, czas jest ustawiony na zero.Jeśli data nie jest obecny, ale odbiorca może przechowywać datę, data jest zestaw bieżącą datę, kiedy należy używać podczas konwersji ISO i 1899-12-30, kiedy należy używać podczas konwersji OLE.
Jeśli nie timezone znajduje się w typ danych używany przez klient, ale timezone mogą być przechowywane na serwerze, dane na komputerze klienckim zakłada się, że w timezone klient.
Jeżeli nie timezone jest obecny na serwerze, ale klient informacji timezone, przyjmowana jest timezone czasu UTC.To różni się od zachowania serwera.
Czas jest obecny, ale adresat nie może przechowywać czasu, składnik czasu jest ignorowana.
Jeśli data nie jest obecny, ale odbiorca nie może przechowywać datę, składnik daty jest ignorowana.
Jeśli obcinania sekund lub ułamków sekund występuje podczas konwersji z klient do serwera, zwracana jest DB_E_ERRORSOCCURRED i DBSTATUS_E_DATAOVERFLOW jest w stanie zestaw.
Jeśli obcinania sekund lub ułamków sekund występuje podczas konwersji z serwera do klient, jest ustawiany DBSTATUS_S_TRUNCATED
W tej sekcji
Konwersje wykonanej z klient do serwera
W tym artykule opisano datę / czas zestawami między napisane z aplikacji klienckiej SQL Server Macierzysta klient OLE DB i SQL Server 2008 (lub nowsze).Konwersje wykonanej z serwera do klient
W tym artykule opisano wykonywane między konwersji data i godziny SQL Server 2008 (lub nowsze) oraz z aplikacji klienckiej SQL Server Klient macierzystym OLE DB.