Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Se você usar um objeto java.sql.Time ou o tipo java.sql.Types.TIME do JDBC para definir um parâmetro, poderá configurar como o valor java.sql.Time é enviado ao servidor; como um tipo time ou um tipo datetime do SQL Server.
Esse cenário se aplica ao usar um dos seguintes métodos:
- SQLServerCallableStatement.registerOutParameter(int, int)
- SQLServerCallableStatement.registerOutParameter(int, int, int)
- SQLServerCallableStatement.setTime
- SQLServerPreparedStatement.setTime
- SQLServerCallableStatement.setObject
- SQLServerPreparedStatement.setObject
SendTimeAsDatetime
Configure como o valor java.sql.Time é enviado usando a propriedade de conexão sendTimeAsDatetime. Para obter mais informações, veja Configuração das propriedades de conexão.
Você pode modificar de forma programática o valor da propriedade de conexão sendTimeAsDatetime com SQLServerDataSource.setSendTimeAsDatetime.
As versões do SQL Server anteriores ao SQL Server 2008 (10.0.x) não dão suporte ao tipo de dados time, ou seja, os aplicativos que usam o java.sql.Time geralmente armazenam os valores de java.sql.Time como tipos de dados datetime ou smalldatetime do SQL Server.
Se você quiser usar os tipos de dados datetime e smalldatetime do SQL Server ao trabalhar com valores de java.sql.Time, deverá definir a propriedade de conexão sendTimeAsDatetime como true. Se quiser usar o tipo de dados time do SQL Server ao trabalhar com valores java.sql.Time, você deve definir a propriedade de conexão sendTimeAsDatetime como false.
Quando você envia valores java.sql.Time para um parâmetro cujos tipos de dados também podem armazenar datas, as datas padrão serão diferentes dependendo de o valor java.sql.Time ser enviado como datetime (1/1/1970) ou time (1/1/1900). Para obter mais informações sobre conversões de dados ao enviar dados para um SQL Server, confira Usando dados de data e hora.
No JDBC Driver 3.0 do SQL Server, sendTimeAsDatetime é true por padrão. Em uma futura versão, a propriedade de conexão sendTimeAsDatetime poderá ser definida como falso por padrão.
Para garantir que o aplicativo continue funcionando conforme esperado, independentemente do valor padrão da propriedade de conexão sendTimeAsDatetime, você pode:
- Use java.sql.Time ao trabalhar com o tipo de dados time do SQL Server.
- Use java.sql.Timestamp ao trabalhar com os tipos de dados datetime, smalldatetime e datetime2SQL Server.
SendTimeAsDatetime precisa ser false para colunas criptografadas, pois as colunas criptografadas não dão suporte à conversão de time em datetime. No Microsoft JDBC Driver 6.0 para SQL Server e versões posteriores, a classe SQLServerConnection tem os dois métodos a seguir para definir/obter o valor da propriedade sendTimeAsDatetime.
public boolean getSendTimeAsDatetime()
public void setSendTimeAsDatetime(boolean sendTimeAsDateTimeValue)