Sdílet prostřednictvím


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)

Viz také

Principy datových typů ovladačů JDBC