Настройка отправки значений java.sql.Time

Скачать драйвер JDBC

Если для задания параметра используется объект java.sql.Time или тип JDBC java.sql.Types.TIME, вы можете настроить метод отправки значения java.sql.Time на сервер: в виде типа SQL Server time или типа datetime.

Этот сценарий применяется в случае использования одного из следующих методов:

SendTimeAsDatetime

Порядок отправки значения java.sql.Time можно настроить с помощью свойства соединения sendTimeAsDatetime. Дополнительные сведения: Задание свойств соединения.

Значение свойства соединения sendTimeAsDatetime можно изменить программным образом с помощью SQLServerDataSource.setSendTimeAsDatetime.

Версии SQL Server, предшествующие SQL Server 2008 (10.0.x), не поддерживают тип данных time, поэтому приложения, использующие java.sql.Time, обычно хранят значения java.sql.Time как datetime или smalldatetime SQL Server типах данных.

Если для работы со значениями java.sql.Time вы хотите использовать типы данных SQL Serverdatetime и smalldatetime, то для свойства подключения sendTimeAsDatetime следует задать значение true. Если для работы со значениями java.sql.Time вы хотите использовать тип данных SQL Server time, то для свойства подключения sendTimeAsDatetime следует задать значение false.

Если значения java.sql.Time передаются в параметр, тип данных которого также поддерживает хранение дат, эти даты по умолчанию будут отличаться в зависимости от того, как отправляется значение java.sql.Time: как datetime (01.01.1970) или как time (01.01.1900). Дополнительные сведения о преобразовании данных при отправке на SQL Server см. в разделе Использование даты и времени.

В SQL Server JDBC Driver 3.0, параметр sendTimeAsDatetime по умолчанию имеет значение true. В следующей версии свойство соединения sendTimeAsDatetime может иметь значение false по умолчанию.

Чтобы гарантировать, что приложение будет работать ожидаемым образом независимо от значения по умолчанию для свойства соединения sendTimeAsDatetime, можно выполнить следующие действия.

  • Использовать java.sql.Time при работе с типом данных timeSQL Server.
  • Используйте java.sql.Timestamp при работе с типами данных SQL Serverdatetime, smalldatetime и datetime2.

SendTimeAsDatetime должен иметь значение FALSE для зашифрованных столбцов, так как они не поддерживают преобразование типа time в datetime. Начиная с Microsoft JDBC Driver 6.0 для SQL Server, класс SQLServerConnection содержит два следующих метода для задания и получения значений свойства sendTimeAsDatetime.

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

См. также раздел

Основные сведения о типах данных JDBC Driver