Konfigurace způsobu odesílání hodnot java.sql.Time

Stáhnout ovladač JDBC

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:

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)