适用于:SQL Server 
Azure SQL 数据库 
Azure SQL 托管实例 
Azure Synapse Analytics 
Analytics Platform System (PDW)
本主题提供有关 COLUMNS 行集和 PROCEDURE_PARAMETERS 行集的信息。 该信息与 SQL Server 2008 (10.0.x) 中引入的 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 始终为 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 (10.0.x) 或更高版本的服务器时,DBCOLUMNFLAGS_SS_ISVARIABLESCALE才有效。 连接到下级服务器时,未定义 DBCOLUMNFLAGS_SS_ISFIXEDSCALE。
PROCEDURE_PARAMETERS 行集
DATA_TYPE 包含与 COLUMNS 架构行集相同的值,并且 TYPE_NAME 包含服务器类型。
已添加新列 SS_DATETIME_PRECISION,以便返回类似于 COLUMNS 行集的 DATETIME_PRECISION 列中的类型精度。
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 | VARIANT_TRUE,除非符合以下某项条件: 是连接到下级服务器的客户端。 数据类型兼容性连接属性指定兼容性级别为 80。 | 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 将这些列用于时间、datetime2 和 datetimeoffset 是非标准的。