Konfigurieren der Art und Weise, wie java.sql.Time-Werte an den Server gesendet werden

Wenn Sie ein java.sql.Time-Objekt oder den java.sql.Types.TIME-JDBC-Typ zum Festlegen eines Parameters verwenden, können Sie konfigurieren, wie der the java.sql.Time-Wert an den Server gesendet wird: als SQL Server time- oder als datetime-Typ.

Dies trifft zu, wenn eine der folgenden Methoden verwendet wird:

Verwenden Sie die sendTimeAsDatetime-Verbindungseigenschaft, um die Art und Weise zu konfigurieren, auf die der java.sql.Time-Wert gesendet wird. Weitere Informationen finden Sie unter Festlegen von Verbindungseigenschaften.

Der Wert der sendTimeAsDatetime-Verbindungseigenschaft kann mit dem SQLServerDataSource.setSendTimeAsDatetime-Element geändert werden.

In den SQL Server-Versionen vor SQL Server 2008 wurde der time-Datentyp nicht unterstützt, und von Anwendungen, die den java.sql.Time-Typ verwendeten, wurden java.sql.Time-Werte entweder als datetime- oder smalldatetime-SQL Server-Datentypen gespeichert.

Wenn Sie beim Arbeiten mit java.sql.Time-Werten die Datentypen datetime und smalldatetime SQL Server verwenden möchten, sollten Sie die Verbindungseigenschaft sendTimeAsDatetime auf true setzen. Wenn Sie beim Arbeiten mit java.sql.Time-Werten den Datentyp time SQL Server verwenden möchten, sollten Sie die Verbindungseigenschaft sendTimeAsDatetime auf false setzen.

Wenn Sie ausschließlich java.sql.Time-Werte in einen Parameter senden, deren Datentyp ebenfalls das Datum speichern kann, unterscheiden sich die Standarddaten je nach dem, ob der java.sql.Time-Wert als datetime (01.01.1970)- oder time (01.01.1900)-Wert gesendet wird. Weitere Informationen zu Datenkonvertierungen beim Senden von Daten an SQL Server finden Sie unter Verwenden von Datum und Uhrzeit.

In SQL Server JDBC Driver 3.0 ist sendTimeAsDatetime standardmäßig als true festgelegt. In künftigen Versionen wird die sendTimeAsDatetime-Verbindungseigenschaft ggf. standardmäßig auf "false" festgelegt.

Gehen Sie wie folgt vor, um zu gewährleisten, dass die Anwendung unabhängig vom Standardwert der sendTimeAsDatetime-Verbindungseigenschaft weiterhin funktioniert:

  • Verwenden Sie den java.sql.Time-Typ, wenn Sie den time-SQL Server-Datentyp verwenden.
  • Verwenden Sie den java.sql.Timestamp-Typ, wenn Sie die datetime-, smalldatetime und datetime2-SQL Server-Datentypen verwenden.

Siehe auch

Weitere Ressourcen

Grundlegendes zu den Datentypen in JDBC Driver