다음을 통해 공유


날짜/시간 데이터 형식

ODBC 3.x에서는 날짜, 시간 및 타임스탬프 SQL 데이터 형식의 식별자가 SQL_DATE, SQL_TIME 및 SQL_TIMESTAMP(헤더 파일 9, 10 및 11의 #define 인스턴스 포함)에서 SQL_TYPE_DATE, SQL_TYPE_TIME 및 SQL_TYPE_TIMESTAMP(헤더 파일 91의 #define 인스턴스 포함)로 변경되었습니다. 각각 92, 93) 해당 C 형식 식별자가 각각 SQL_C_DATE, SQL_C_TIME 및 SQL_C_TIMESTAMP SQL_C_TYPE_DATE, SQL_C_TYPE_TIME 및 SQL_C_TYPE_TIMESTAMP 변경되었으며, 그에 따라 #define 인스턴스가 변경되었습니다.

ODBC 3.x의 SQL datetime 데이터 형식에 대해 반환되는 열 크기와 소수 자릿수는 ODBC 2.x에서 반환된 전체 자릿수 및 소수 자릿수와 동일합니다. 이러한 값은 SQL_DESC_PRECISION 및 SQL_DESC_SCALE 설명자 필드의 값과 다릅니다. (자세한 내용은 를 참조하세요 .열 크기, 10진수, 8진수 전송 길이 및 표시 크기 (부록 D: 데이터 형식))

이러한 변경 내용은 SQLDescribeCol, SQLDescribeParamSQLColAttributes에 영향을 미칩니다.SQLBindCol, SQLBindParameterSQLGetData; 및 SQLColumns, SQLGetTypeInfo, SQLProcedureColumns, SQLStatisticsSQLSpecialColumns.

ODBC 3.x 드라이버는 SQL_ATTR_ODBC_VERSION 환경 특성의 설정에 따라 이전 단락에 나열된 함수 호출을 처리합니다. SQLColumns, SQLGetTypeInfo, SQLProcedureColumns, SQLSpecialColumnsSQLStatistics의 경우 SQL_ATTR_ODBC_VERSION SQL_OV_ODBC3 설정되면 함수는 DATA_TYPE 필드에 SQL_TYPE_DATE, SQL_TYPE_TIME 및 SQL_TYPE_TIMESTAMP 반환합니다. COLUMN_SIZE 열(SQLColumns, SQLGetTypeInfo, SQLProcedureColumns 및 SQLSpecialColumns에서 반환된 결과 집합에서)에는 대략적인 숫자 형식에 대한 이진 정밀도가 포함됩니다. SQL_ATTR_ODBC_VERSION SQL_OV_ODBC2 설정된 경우 함수는 DATA_TYPE 필드에 SQL_DATE, SQL_TIME 및 SQL_TIMESTAMP 반환하고 COLUMN_SIZE 열에는 근사치 숫자 형식의 소수 자릿수가 포함됩니다.

SQLGetTypeInfo 호출에서 모든 데이터 형식이 요청되면 함수에서 반환된 결과 집합에는 ODBC 3.x에 정의된 SQL_TYPE_DATE, SQL_TYPE_TIME 및 SQL_TYPE_TIMESTAMP 및 ODBC 2.x에 정의된 대로 SQL_DATE, SQL_TIME 및 SQL_TIMESTAMP 모두 포함됩니다.

ODBC 3.x 드라이버 관리자가 날짜, 시간 및 타임스탬프 데이터 형식의 매핑을 수행하는 방식 때문에 ODBC 3.x 드라이버는 SQLBindCol 및 SQLGetData의 TargetType 인수 또는 SQLBindParameter의 ValueType 인수입력된 날짜, 시간 및 타임스탬프 C 데이터 형식에 대한 #defines 91, 92 및 93만 인식해야 합니다. SQLBindParameter의 ParameterType 인수 또는 SQLGetTypeInfo의 DataType 인수에 입력된 날짜, 시간 및 타임스탬프 SQL 데이터 형식에 대한 #defines 91, 92 및 93만 인식 하면 됩니다. 자세한 내용은 Datetime 데이터 형식 변경 내용을 참조 하세요.