java.sql.Time 값을 보내는 방식 구성

JDBC 드라이버 다운로드

java.sql.Time 개체 또는 java.sql.Types.TIME JDBC 형식을 사용하여 매개 변수를 설정하는 경우 java.sql.Time 값을 SQL Server time 형식 또는 datetime 형식으로 서버에 전송하는 방식을 구성할 수 있습니다.

이 시나리오는 다음 메서드 중 하나를 사용할 때 적용됩니다.

SendTimeAsDatetime

sendTimeAsDatetime 연결 속성을 사용하여 java.sql.Time 값을 보내는 방식을 구성할 수 있습니다. 자세한 내용은 연결 속성 설정을 참조하세요.

SQLServerDataSource.setSendTimeAsDatetime을 사용하여 sendTimeAsDatetime 연결 속성의 값을 프로그래밍 방식으로 수정할 수 있습니다.

SQL Server 2008(10.0.x) 이전의 SQL Server 버전은 time 데이터 형식을 지원하지 않으므로 java.sql.Time을 사용하는 애플리케이션은 일반적으로 datetime 또는 smalldatetime SQL Server 데이터 형식으로 java.sql.Time 값을 저장합니다.

SendTimeAsDatetime 값으로 작업할 때 datetimesmalldatetimeSQL Server 데이터 형식을 사용 하려는 경우에는 connection 속성을 true로 설정 해야 합니다. java.sql.Time 값으로 작업할 때 time SQL Server 데이터 형식을 사용하려면 sendTimeAsDatetime 연결 속성을 false로 설정해야 합니다.

날짜도 저장할 수 있는 데이터 형식의 매개 변수에 java.sql.Time 값을 보낼 때 java.sql.Time 값을 datetime(1/1/1970) 값으로 보내는지 아니면 time(1/1/1900) 값으로 보내는지에 따라 기본 날짜가 달라집니다. 데이터를 SQL Server로 보낼 때의 데이터 변환에 대한 자세한 내용은 날짜 및 시간 데이터 사용을 참조하세요.

SQL Server JDBC Driver 3.0에서 sendTimeAsDatetime은 기본적으로 true입니다. 후속 릴리스에서는 sendTimeAsDatetime 연결 속성이 기본적으로 false로 설정될 수 있습니다.

애플리케이션이 sendTimeAsDatetime 연결 속성의 기본값에 관계없이 계속해서 예상대로 작동하도록 하려면 다음과 같이 하면 됩니다.

  • timeSQL Server 데이터 형식을 사용하여 작업할 경우 java.sql.Time을 사용합니다.
  • datetime, smalldatetimedatetime2SQL Server 데이터 형식을 사용하여 작업할 경우 java.sql.Timestamp를 사용합니다.

암호화된 열에서는 시간에서 날짜/시간으로의 변환을 지원하지 않으므로 sendTimeAsDatetime은 암호화된 열에 대해 false여야 합니다. Microsoft JDBC Driver 6.0 for SQL Server부터 SQLServerConnection 클래스에는 sendTimeAsDatetime 속성의 값을 설정하거나 가져오는 다음 두 가지 메서드가 있습니다.

  public boolean getSendTimeAsDatetime()
  public void setSendTimeAsDatetime(boolean sendTimeAsDateTimeValue)

참고 항목

JDBC 드라이버 데이터 형식 이해