SQL Server Native Client 日期和時間改善

適用於:SQL ServerAzure SQL DatabaseAzure SQL 受控執行個體Azure Synapse AnalyticsAnalytics Platform System (PDW)

重要

SQL Server Native Client (通常縮寫為 SNAC) 已從 SQL Server 2022 (16.x) 和 SQL Server Management Studio 19 (SSMS) 中移除。 不建議使用 SQL Server Native Client (SQLNCLI 或 SQLNCLI11) 和舊版 Microsoft OLE DB Provider for SQL Server (SQLOLEDB) 開發新的應用程式。 往後請改用新的 Microsoft OLE DB Driver (MSOLEDBSQL) for SQL Server 或最新的 Microsoft ODBC Driver for SQL Server。 如需 SQL Server 資料庫引擎元件隨附的 SQLNCLI(版本 2012 到 2019),請參閱此 支援生命週期例外狀況

本主題描述 SQL Server 2008 中新增之日期和時間資料類型的 SQL Server Native Client 支援(10.0.x)。

如需日期/時間改善的詳細資訊,請參閱 日期和時間改善 (OLE DB) 日期和時間改善 (ODBC)

使用量

下列章節描述使用新日期和時間類型的各種方式。

將 Date 當做不同的資料類型使用

從 SQL Server 2008 (10.0.x) 開始,日期/時間類型的增強支援讓使用 SQL_TYPE_DATE ODBC 類型(適用于 ODBC 2.0 應用程式的 SQL_DATE)和 DBTYPE_DBDATE OLE DB 類型更有效率。

將 Time 當做不同的資料類型使用

OLE DB 已經有只包含時間的資料類型 DBTYPE_DBTIME,其精確度為 1 秒。 在 ODBC 中,對等類型是SQL_TYPE_TIME (ODBC 2.0 應用程式的SQL_TIME)。

新 SQL Server 時間資料類型的小數秒數精確度為 100 奈秒。 這需要 SQL Server Native Client 中的新類型:DBTYPE_DBTIME2 (OLE DB) 和 SQL_SS_TIME2 (ODBC)。 為使用不含小數秒的時間而撰寫的現有應用程式可以使用 time(0) 資料行。 除非應用程式依賴中繼資料中傳回的類型,否則現有的 OLE DB DBTYPE_TIME 和 ODBC SQL_TYPE_TIME 型別及其對應的結構應該正常運作。

使用包含擴充小數秒精確度的 Time 做為不同的資料類型

有些應用程式 (例如,處理序控制項和製造應用程式) 必須能夠處理精確度高達 100 奈秒的時間資料。 此用途的新類型為 DBTYPE_DBTIME2 (OLE DB) 和 SQL_SS_TIME2 (ODBC)。

使用包含擴充小數秒精確度的 Datetime

OLE DB 已經定義一個精確度高達 1 奈秒的類型。 然而,此類型已由現有的 SQL Server 應用程式所使用,且此類應用程式的整數位數應該只有一秒的 1/300。 新的 datetime2(3) 類型與現有的日期時間類型不直接相容。 如果這有影響應用程式行為的風險,應用程式必須使用新的 DBCOLUMN 旗標來判斷實際的伺服器類型。

ODBC 也會定義精確度高達 1 奈秒的類型。 不過,現有的 SQL Server 應用程式已經使用此類型,因此這類應用程式只需要 3 毫秒的精確度。 新的 datetime2(3) 類型與現有的 datetime 類型不直接相容。 datetime2(3) 的精確度為 1 毫秒,而 datetime 的精確度為 1/300 秒。 在 ODBC 中,應用程式可以判斷哪個伺服器類型與描述元欄位搭配使用SQL_DESC_TYPE_NAME。 因此,現有的類型SQL_TYPE_TIMESTAMP(ODBC 2.0 應用程式的SQL_TIMESTAMP)可用於這兩種類型。

使用包含擴充小數秒精確度和時區的 Datetime

某些應用程式需要包含時區資訊的日期時間值。 新DBTYPE_DBTIMESTAMPOFFSET (OLE DB) 和 SQL_SS_TIMESTAMPOFFSET (ODBC) 類型支援此功能。

搭配與現有轉換一致的用戶端轉換使用 Date/Time/Datetime/Datetimeoffset 資料

ODBC 標準描述現有日期、時間和時間戳記類型之間的轉換如何運作。 這些會以一致的方式擴充,以包含 SQL Server 2008 (10.0.x) 中引進的所有日期和時間類型之間的轉換。

另請參閱

SQL Server Native Client 功能