SQL Server Native Client 날짜 및 시간 개선 사항
적용 대상: SQL Server Azure SQL 데이터베이스 Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System(PDW)
Important
SNAC(SQL Server Native Client)는 다음과 함께 제공되지 않습니다.
- SQL Server 2022(16.x) 이상 버전
- SQL Server Management Studio 19 이상 버전
SQL Server Native Client(SQLNCLI 또는 SQLNCLI11)와 레거시 Microsoft OLE DB Provider for SQL Server(SQLOLEDB)는 새로운 응용 프로그램 개발에 권장되지 않습니다.
새 프로젝트의 경우 다음 드라이버 중 하나를 사용합니다.
SQL Server 데이터베이스 엔진(버전 2012부터 2019까지)의 구성 요소로 제공되는 SQLNCLI의 경우 이 수명 주기 예외 지원을 참조하세요.
이 항목에서는 SQL Server 2008(10.0.x)에 추가된 날짜 및 시간 데이터 형식에 대한 SQL Server Native Client 지원에 대해 설명합니다.
날짜/시간 개선에 대한 자세한 내용은 날짜 및 시간 개선 사항(OLE DB) 및 ODBC(날짜 및 시간 개선)를 참조하세요.
사용
다음 섹션에서는 새 date 및 time 형식을 사용하는 다양한 방법에 대해 설명합니다.
고유 데이터 형식으로 Date 사용
SQL Server 2008(10.0.x)부터 날짜/시간 형식에 대한 지원이 향상되면 SQL_TYPE_DATE ODBC 형식(ODBC 2.0 애플리케이션의 경우 SQL_DATE) 및 DBTYPE_DBDATE OLE DB 형식을 사용하는 것이 더 효율적입니다.
고유 데이터 형식으로 Time 사용
OLE DB에는 정밀도가 1초인 시간(DBTYPE_DBTIME)만 포함하는 데이터 형식이 이미 있습니다. ODBC에서 해당 형식은 SQL_TYPE_TIME(ODBC 2.0 애플리케이션의 경우 SQL_TIME)입니다.
새 SQL Server time 데이터 형식은 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) 형식은 기존 datetime 형식과 직접 호환되지 않습니다. 이 형식이 애플리케이션의 동작에 영향을 미칠 수 있는 경우 애플리케이션에서 새 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 사용
일부 애플리케이션에는 표준 시간대 정보가 포함된 datetime 값이 필요합니다. 이는 새 DBTYPE_DBTIMESTAMPOFFSET(OLE DB) 및 SQL_SS_TIMESTAMPOFFSET(ODBC) 형식에서 지원됩니다.
기존 변환과 일관된 클라이언트 쪽 변환이 포함된 Date/Time/Datetime/Datetimeoffset 데이터 사용
ODBC 표준은 기존 날짜, 시간 및 타임스탬프 형식 간의 변환이 작동하는 방식을 설명합니다. SQL Server 2008(10.0.x)에 도입된 모든 날짜 및 시간 형식 간의 변환을 포함하도록 일관된 방식으로 확장됩니다.