Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Pokud k nastavení parametru použijete objekt java.sql.Time nebo typ java.sql.Types.TIME JDBC, můžete nakonfigurovat, jak se na server odešle hodnota java.sql.Time; jako typ času SQL Serveru nebo jako typ data a času .
Tento scénář platí pro použití jedné z následujících metod:
- SQLServerCallableStatement.registerOutParameter(int, int)
- SQLServerCallableStatement.registerOutParameter(int, int, int)
- SQLServerCallableStatement.setTime
- SQLServerPreparedStatement.setTime
- SQLServerCallableStatement.setObject
- SQLServerPreparedStatement.setObject
SendTimeAsDatetime
Způsob odeslání hodnoty java.sql.Time můžete nakonfigurovat pomocí vlastnosti připojení sendTimeAsDatetime . Další informace naleznete v tématu Nastavení vlastností připojení.
Hodnotu vlastnosti připojení sendTimeAsDatetime můžete programově upravit pomocí sqlServerDataSource.setSendTimeAsDatetime.
Verze SQL Serveru starší než SQL Server 2008 (10.0.x) nepodporují datový typ času , takže aplikace používající java.sql.Time obvykle ukládají hodnoty java.sql.Time jako datové typy datetime nebo smalldatetime SQL Server.
Pokud chcete při práci s hodnotami java.sql.Time použít datové typy datetime a smalldatetimeSQL Server, měli byste nastavit vlastnost připojení sendTimeAsDatetime na true. Pokud chcete při práci s hodnotami java.sql.Time použít datový typ SQL Serveru , měli byste nastavit vlastnost připojení sendTimeAsDatetime na false.
Odesílání hodnot java.sql.Time do parametru, jehož datový typ může také obsahovat datum, znamená, že výchozí data se liší v závislosti na tom, zda je hodnota java.sql.Time odeslána jako datum a čas (1. 1. 1970) nebo jako čas (1. 1. 1900). Další informace o převodech dat při odesílání dat na SQL Server naleznete v tématu Použití dat data a času.
V ovladači SQL Server JDBC 3.0 je sendTimeAsDatetime implicitně nastaveno na true. V budoucí verzi může být vlastnost připojení sendTimeAsDatetime nastavena na hodnotu false.
Pokud chcete zajistit, aby vaše aplikace fungovala podle očekávání bez ohledu na výchozí hodnotu vlastnosti připojení sendTimeAsDatetime , můžete:
- Při práci s datovýmtypem SQL Serveru použijte java.sql.Time.
- Při práci s datovými typy datetime, smalldatetime a datetime2SQL Serveru použijte java.sql.Timestamp.
Hodnota SendTimeAsDatetime musí být pro šifrované sloupce false, protože šifrované sloupce nepodporují převod z času na datum a čas. Počínaje ovladačem Microsoft JDBC 6.0 pro SQL Server má třída SQLServerConnection následující dvě metody, jak nastavit nebo získat hodnotu sendTimeAsDatetime vlastnost.
public boolean getSendTimeAsDatetime()
public void setSendTimeAsDatetime(boolean sendTimeAsDateTimeValue)