Powiązania i konwersje (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ągi dla daty i godziny w OLE DB ogólnie następuje ISO i nie jest zależne od ustawienia regionalne klient.Jedynym wyjątkiem jest DBTYPE_DATE, gdzie standard jest automatyzacja OLE.Jednak ponieważ SQL Server Native klient konwertuje tylko między typami podczas przesyłania danych do lub z klient, nie ma możliwości dla aplikacji wymusić SQL Server Native klient konwersji między DBTYPE_DATE i ciąg formatu. W przeciwnym wypadku ciągów użyj następujących formatów (tekst w nawiasach oznacza element opcjonalny):
Format datetime i datetimeoffset jest ciągów:
yyyy-mm-dd[ hh:mm:ss[.9999999][ ± hh:mm]]
Format time jest ciągów:
hh:mm:ss[.9999999]
Format date jest ciągów:
yyyy-mm-dd
Ostrzeżenie
We wcześniejszych wersjach SQL Server Native Client i SQLOLEDB zaimplementowane konwersje OLE przypadek konwersji standardowych nie powiodło się.W wyniku konwersji niektóre wykonywane przez SQL Server macierzystego 10.0 klienta różnią się od specyfikacji OLE DB.
Konwersje z ciągów znaków umożliwienia elastyczności w odstępy i szerokość pole.Aby uzyskać więcej informacji, zobacz "formaty danych: Ciągi i literałów" sekcja w Obsługa typu danych OLE DB Data/Godzina ulepszenia.
Dostępne są następujące zasady ogólne konwersji:
Kiedy przekonwertować ciąg na datę /czas typu ciąg najpierw jest analizowany jako literał ISO.Jeśli to się nie powiedzie, ciąg jest analizowany jako OLE literałem data, która ma czas składników.
Jeśli nie jest obecny, ale odbiorca może przechowywać czasu, czas jest zestaw do zera.Jeśli data nie jest obecny, ale odbiorca może przechowywać datę, data jest zestaw do bieżącej daty, kiedy są używane konwersje ISO i 1899-12-30 podczas konwersji OLE są używane.
Jeśli timezone nie jest obecny w typ danych używany przez klient, ale serwer może przechowywać strefa czasowa, dane na komputerze klient przyjęto w strefa czasowa klient.
Jeżeli nie timezone jest obecny na serwerze, ale klient ma informacji o strefie czasowej, przyjmowana jest strefa czasowa UTC.To różni się od zachowania serwerowego.
Czas jest obecny, ale odbiorca nie może przechowywać czasu, składnik czasu jest ignorowana.
Jeśli data jest obecny, ale odbiorca nie może przechowywać datę, składnik daty jest ignorowana.
Jeśli zostanie sekund lub ułamków sekund obcięte podczas konwersji z klient do serwera, zwracany jest DB_E_ERRORSOCCURRED i jest w stanie DBSTATUS_E_DATAOVERFLOW zestaw.
Jeśli zostanie sekund lub ułamków sekund obcięte podczas konwersji z serwera do klient, jest DBSTATUS_S_TRUNCATEDzestaw
W tej sekcji
Konwersje wykonywane z klienta do serwera
Opisuje data /czas zestawami między aplikacji klient napisanych z SQL Server macierzystego klient OLE DB i SQL Server 2008 (lub nowsze).Konwersje wykonywane z serwera do klienta
Opisuje data /czas konwersje wykonywane między SQL Server 2008 (lub nowszym) i aplikacji klient napisanych z SQL Server Macierzystego klient OLE DB.