日期/時間與結構描述資料列集
本主題提供有關 COLUMNS 資料列集和 PROCEDURE_PARAMETERS 資料列集的資訊。這項資訊與 SQL Server 2008 中引進的 OLE DB 日期和時間增強功能相關。
COLUMNS 資料列集
系統會傳回日期/時間類型的下列資料行值:
資料行類型 |
DATA_TYPE |
COLUMN_FLAGS、DBCOLUMFLAGS_SS_ISVARIABLESCALE |
DATETIME_PRECISION |
---|---|---|---|
date |
DBTYPE_DBDATE |
Clear |
0 |
time |
DBTYPE_DBTIME2 |
Set |
0..7 |
smalldatetime |
DBTYPE_DBTIMESTAMP |
Clear |
0 |
datetime |
DBTYPE_DBTIMESTAMP |
Clear |
3 |
datetime2 |
DBTYPE_DBTIMESTAMP |
Set |
0..7 |
datetimeoffset |
DBTYPE_DBTIMESTAMPOFFSET |
Set |
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 也必須用來識別伺服器類型。
只有連接到 SQL Server 2008 (或更新版本) 伺服器時,DBCOLUMNFLAGS_SS_ISVARIABLESCALE 才有效。連接到下層伺服器時,不會定義 DBCOLUMNFLAGS_SS_ISFIXEDSCALE。
PROCEDURE_PARAMETERS 資料列集
DATA_TYPE 包含與 COLUMNS 結構描述資料列集相同的值,而 TYPE_NAME 包含伺服器類型。
已經加入新的資料行 SS_DATETIME_PRECISION,以傳回與 DATETIME_PRECISION 資料行相同的類型,類似 COLUMNS 資料列集。
PROVIDER_TYPES 資料列集
系統會傳回日期/時間類型的下列資料列:
類型 -> 資料行 |
date |
time |
smalldatetime |
datetime |
datetime2 |
datetimeoffset |
---|---|---|---|---|---|---|
TYPE_NAME |
date |
time |
smalldatetime |
datetime |
datetime2 |
datetimeoffset |
DATA_TYPE |
DBTYPE_DBDATE |
DBTYPE_DBTIME2 |
DBTYPE_DBTIMESTAMP |
DBTYPE_DBTIMESTAMP |
DBTYPE_DBTIMESTAMP |
DBTYPE_DBTIMESTAMPOFFSET |
COLUMN_SIZE |
10 |
16 |
16 |
23 |
27 |
34 |
LITERAL_PREFIX |
‘ |
‘ |
‘ |
‘ |
‘ |
‘ |
LITERAL_SUFFIX |
‘ |
‘ |
‘ |
‘ |
‘ |
‘ |
CREATE_PARAMS |
NULL |
scale |
NULL |
NULL |
scale |
scale |
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 |
SEARCHABLE |
DB_SEARCHABLE |
DB_SEARCHABLE |
DB_SEARCHABLE |
DB_SEARCHABLE |
DB_SEARCHABLE |
DB_SEARCHABLE |
UNSIGNED_ATTRIBUTE |
NULL |
NULL |
NULL |
NULL |
NULL |
NULL |
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 |
date |
time |
smalldatetime |
datetime |
datetime2 |
datetimeoffset |
MINIMUM_SCALE |
NULL |
0 |
NULL |
NULL |
0 |
0 |
MAXIMUM_SCALE |
NULL |
7 |
NULL |
NULL |
7 |
7 |
GUID |
NULL |
NULL |
NULL |
NULL |
NULL |
NULL |
TYPELIB |
NULL |
NULL |
NULL |
NULL |
NULL |
NULL |
VERSION |
NULL |
NULL |
NULL |
NULL |
NULL |
NULL |
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:
|
除非下列其中之一是 true,否則為 VARIANT_TRUE:
|
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 這些資料行的用法不是標準的。