共用方式為


日期和時間以及結構描述資料列集

本主題提供有關 COLUMNS 資料列集和 PROCEDURE_PARAMETERS 資料列集的資訊。 此資訊與 SQL Server 2008 中引進的 OLE DB 日期和時間增強功能有關。

COLUMNS 資料列集

系統會傳回日期/時間類型的下列資料行值:

欄位類型 資料類型 COLUMN_FLAGS,DBCOLUMFLAGS_SS_ISVARIABLESCALE DATETIME_PRECISION
日期 DBTYPE_DBDATE 0
時間 DBTYPE_DBTIME2 設定 0..7
smalldatetime DBTYPE_DBTIMESTAMP 0
日期時間 DBTYPE_DBTIMESTAMP 3
datetime2 DBTYPE_DBTIMESTAMP 設定 0..7
datetimeoffset(日期時間偏移量) DBTYPE_DBTIMESTAMPOFFSET 設定 0..7

在 COLUMN_FLAGS 中,DBCOLUMNFLAGS_ISFIXEDLENGTH 對 date/time 類型永遠為 true,而且下列旗標永遠為 false:

  • DBCOLUMNFLAGS_CACHEDEFERRED

  • DBCOLUMNFLAGS_ISBOOKMARK

  • DBCOLUMNFLAGS_ISCHAPTER

  • DBCOLUMNFLAGS_ISLONG

  • DBCOLUMNFLAGS_ISROWID

  • DBCOLUMNFLAGS_ISROWVER

  • DBCOLUMNFLAGS_MAYDEFER

剩餘的旗標 (DBCOLUMNFLAGS_ISNULLABLE、DBCOLUMNFLAGS_MAYBENULL、DBCOLUMNFLAGS_WRITE 和 DBCOLUMNFLAGS_WRITEUNKNOWN) 可以根據資料行的定義方式來設定。

在 COLUMN_FLAGS 中會提供新旗標 DBCOLUMNFLAGS_SS_ISVARIABLESCALE,以允許應用程式判斷資料行的伺服器類型,其中 DATA_TYPE 是 DBTYPE_DBTIMESTAMP。 DATETIME_PRECISION 也必須用來識別伺服器類型。

DBCOLUMNFLAGS_SS_ISVARIABLESCALE只有在連線到 SQL Server 2008 或更新版本伺服器時才有效。 連接到下層伺服器時,不會定義 DBCOLUMNFLAGS_SS_ISFIXEDSCALE。

PROCEDURE_PARAMETERS 資料列集

DATA_TYPE 包含與 COLUMNS 結構描述資料列集相同的值,而 TYPE_NAME 包含伺服器類型。

已經加入新的資料行 SS_DATETIME_PRECISION,以傳回與 DATETIME_PRECISION 資料行相同的類型,類似 COLUMNS 資料列集。

PROVIDER_TYPES 資料列集

系統會傳回日期/時間類型的下列資料列:

鍵入 ->

資料行
日期 時間 smalldatetime 日期時間 datetime2 datetimeoffset(日期時間偏移量)
類型名稱 日期 時間 smalldatetime 日期時間 datetime2 datetimeoffset(日期時間偏移量)
資料類型 DBTYPE_DBDATE DBTYPE_DBTIME2 DBTYPE_DBTIMESTAMP DBTYPE_DBTIMESTAMP DBTYPE_DBTIMESTAMP DBTYPE_DBTIMESTAMPOFFSET
COLUMN_SIZE 10 16 16 23 二十七 34
LITERAL_PREFIX ' ' ' ' ' '
LITERAL_SUFFIX ' ' ' ' ' '
CREATE_PARAMS 規模 規模 規模
IS_NULLABLE VARIANT_TRUE VARIANT_TRUE VARIANT_TRUE VARIANT_TRUE VARIANT_TRUE VARIANT_TRUE
CASE_SENSITIVE VARIANT_FALSE VARIANT_FALSE VARIANT_FALSE VARIANT_FALSE VARIANT_FALSE VARIANT_FALSE
可搜尋 DB_SEARCHABLE DB_SEARCHABLE DB_SEARCHABLE DB_SEARCHABLE DB_SEARCHABLE DB_SEARCHABLE
UNSIGNED_ATTRIBUTE
FIXED_PREC_SCALE VARIANT_FALSE VARIANT_FALSE VARIANT_FALSE VARIANT_FALSE VARIANT_FALSE VARIANT_FALSE
AUTO_UNIQUE_VALUE VARIANT_FALSE VARIANT_FALSE VARIANT_FALSE VARIANT_FALSE VARIANT_FALSE VARIANT_FALSE
LOCAL_TYPE_NAME 日期 時間 smalldatetime 日期時間 datetime2 datetimeoffset(日期時間偏移量)
MINIMUM_SCALE 0 0 0
MAXIMUM_SCALE 7 7 7
GUID(國際唯一識別碼)
TYPELIB
版本
IS_LONG VARIANT_FALSE VARIANT_FALSE VARIANT_FALSE VARIANT_FALSE VARIANT_FALSE VARIANT_FALSE
BEST_MATCH VARIANT_TRUE VARIANT_TRUE VARIANT_TRUE 除非下列其中之一是 true,否則為 VARIANT_TRUE:

- 用戶端是否已連線到下層伺服器。
- 數據類型相容性連接屬性會指定等於 80 的相容性層級。
除非下列其中之一是 true,否則為 VARIANT_TRUE:

- 用戶端是否已連線到下層伺服器。
- 數據類型相容性連接屬性會指定等於 80 的相容性層級。
VARIANT_TRUE
IS_FIXEDLENGTH VARIANT_TRUE VARIANT_TRUE VARIANT_TRUE VARIANT_TRUE VARIANT_TRUE VARIANT_TRUE

OLE DB 只會定義數值和十進位類型的MINIMUM_SCALE和MAXIMUM_SCALE,因此 SQL Server Native Client 針對 time、datetime2 和 datetimeoffset 使用這些數據行不是標準。

另請參閱

中繼資料 (OLE DB)