Condividi tramite


Configurazione della modalità di invio dei valori java.sql.Time al server

Se si utilizza un oggetto java.sql.Time o il tipo JDBC java.sql.Types.TIME per impostare un parametro, è possibile configurare la modalità di invio del valore java.sql.Time al server come tipo time o datetime di SQL Server.

Questo scenario si applica quando si utilizza uno dei seguenti metodi:

La modalità di invio del valore java.sql.Time può essere configurata tramite la proprietà di connessione sendTimeAsDatetime. Per ulteriori informazioni, vedere Impostazione delle proprietà delle connessioni.

Il valore della proprietà di connessione sendTimeAsDatetime può essere modificato a livello di codice con SQLServerDataSource.setSendTimeAsDatetime.

Le versioni di SQL Server precedenti a SQL Server 2008 non supportano il tipo di dati time, pertanto le applicazioni che utilizzano java.sql.Time in genere archiviano i valori java.sql.Time come tipi di dati datetime o smalldatetime di SQL Server.

Se si desidera utilizzare i tipi di dati datetime e smalldatetime di SQL Server quando si utilizzano i valori java.sql.Time, è consigliabile impostare la proprietà di connessione sendTimeAsDatetime su true. Se si desidera utilizzare il tipo di dati time di SQL Server quando si utilizzano i valori java.sql.Time, è consigliabile impostare la proprietà di connessione sendTimeAsDatetime su false.

Se si inviano valori java.sql.Time in un parametro il cui tipo di dati può archiviare anche la data, tali date predefinite sono diverse a seconda se il valore java.sql.Time viene inviato come valore time (1/1/1970) o datetime (1/1/1900). Per ulteriori informazioni sulle conversioni di dati quando si inviano dati a SQL Server, vedere Utilizzo di dati relativi a data e ora.

Nel driver JDBC 3.0 per SQL Server la proprietà sendTimeAsDatetime è True per impostazione predefinita. In una versione successiva la proprietà di connessione sendTimeAsDatetime può essere impostata su False per impostazione predefinita.

Per assicurarsi che l'applicazione continui a funzionare come previsto, indipendentemente dal valore predefinito della proprietà di connessione sendTimeAsDatetime, è possibile:

  • Utilizzare java.sql.Time in caso di utilizzo del tipo di dati time di SQL Server.
  • Utilizzare java.sql.Timestamp in caso di utilizzo dei tipi di dati datetime, smalldatetime e datetime2 di SQL Server.

Vedere anche

Altre risorse

Informazioni sui tipi di dati del driver JDBC