Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Ważna
Klient natywny SQL Servera (SNAC) nie jest dostarczany z:
- SQL Server 2022 (16.x) i nowsze wersje
- SQL Server Management Studio 19 i nowsze wersje
Program SQL Server Native Client (SQLNCLI lub SQLNCLI11) oraz starszy dostawca microsoft OLE DB dla programu SQL Server (SQLOLEDB) nie są zalecane w przypadku tworzenia nowych aplikacji.
W przypadku nowych projektów użyj jednego z następujących sterowników:
- Sterownik ODBC firmy Microsoft dla programu SQL Server
- Sterownik OLE DB firmy Microsoft dla programu SQL Server
W przypadku programu SQLNCLI dostarczanego jako składnik aparatu bazy danych programu SQL Server (wersje 2012–2019), proszę sprawdzić wyjątek cyklu wsparcia .
Ten temat opisuje wsparcie dla natywnego klienta SQL Server dla typów danych danych i godzin, które zostały dodane w SQL Server 2008 (10.0.x).
Więcej informacji o ulepszeniach dat/godziny można znaleźć w artykule Ulepszenia daty i godziny (OLE DB) oraz Ulepszenia dotyczące daty i godziny (ODBC).
Usage
Poniższe sekcje opisują różne sposoby wykorzystania nowych typów dat i godzin.
Użyj daty jako odrębnego typu danych
Począwszy od SQL Server 2008 (10.0.x), rozszerzone wsparcie dla typów dat/czasu sprawia, że korzystanie z typu ODBC SQL_TYPE_DATE (SQL_DATE dla aplikacji ODBC 2.0) oraz DBTYPE_DBDATE OLE DB jest bardziej efektywne.
Używaj czasu jako odrębnego typu danych
OLE DB ma już typ danych, który zawiera tylko czas, DBTYPE_DBTIME, z precyzją 1 sekundy. W ODBC odpowiednikiem jest SQL_TYPE_TIME (SQL_TIME dla aplikacji ODBC 2.0).
Nowy typ danych czasowych SQL Server ma ułamki sekund z dokładnością do 100 nanosekund. Wymaga to nowych typów w SQL Server Native Client: DBTYPE_DBTIME2 (OLE DB) oraz SQL_SS_TIME2 (ODBC). Istniejące aplikacje napisane z myślą o czasach bez ułamków sekund mogą używać kolumn time(0). Istniejące typy SQL_TYPE_TIME DBTYPE_TIME i ODBC w OLE DB oraz odpowiadające im struktury powinny działać poprawnie, chyba że aplikacje polegają na typie zwracanym w metadanych.
Używaj czasu jako odrębnego typu danych z rozszerzoną precyzją ułamkowych sekund
Niektóre zastosowania, takie jak sterowanie procesem i produkcyjne, wymagają możliwości obsługi danych czasowych z precyzją do 100 nanosekund. Nowymi typami do tego celu są DBTYPE_DBTIME2 (OLE DB) i SQL_SS_TIME2 (ODBC).
Używaj czasu datowego z rozszerzoną precyzją ułamkowych sekund
OLE DB już definiuje typ z precyzją do 1 nanosekundy. Jednak ten typ jest już używany przez istniejące aplikacje SQL Server i takie aplikacje mają oczekiwanie jedynie 1/300 sekundy precyzji. Nowy typ datetime2(3) nie jest bezpośrednio zgodny z istniejącym typem datetime. Jeśli istnieje ryzyko, że wpłynie to na zachowanie aplikacji, aplikacje muszą użyć nowej flagi kolumny DB, aby określić rzeczywisty typ serwera.
ODBC definiuje również typ o precyzji do 1 nanosekundy. Jednak ten typ jest już używany przez istniejące aplikacje SQL Server i takie aplikacje oczekują jedynie 3 milisekundowej precyzji. Nowy typ datetime2(3) nie jest bezpośrednio zgodny z istniejącym typem datetime . DateTime2(3) ma precyzję jednej milisekundy, a DateTime 1/300 sekundy. W ODBC aplikacje mogą określić, który typ serwera jest używany za pomocą pola deskryptorowego SQL_DESC_TYPE_NAME. Dlatego istniejący typ SQL_TYPE_TIMESTAMP (SQL_TIMESTAMP dla aplikacji ODBC 2.0) może być używany dla obu typów.
Używaj czasu datowego z rozszerzoną precyzją ułamkowych sekund i strefą czasową
Niektóre aplikacje wymagają wartości daty-czasu wraz z informacją o strefach czasowych. Wspierają to nowe typy DBTYPE_DBTIMESTAMPOFFSET (OLE DB) i SQL_SS_TIMESTAMPOFFSET (ODBC).
Użyj danych Date/Time/Datetime/Datetimeoffset z Client-Side konwersjami zgodnymi z istniejącymi konwersjami
Standard ODBC opisuje, jak działają konwersje między istniejącymi typami dat, godziny i znaczników czasu. Są one rozszerzane w sposób spójny, aby obejmować konwersje między wszystkimi typami daty i godziny wprowadzonymi w SQL Server 2008 (10.0.x).