Dela via


Konfigurera hur java.sql.Time-värden skickas

Ladda ned JDBC-drivrutin

Om du använder ett java.sql.Time-objekt eller JDBC-typen java.sql.Types.TIME för att ange en parameter kan du konfigurera hur värdet java.sql.Time skickas till servern. antingen som en SQL Server-tidstyp eller som en datetime-typ .

Det här scenariot gäller när du använder någon av följande metoder:

SendTimeAsDatetime

Du kan konfigurera hur värdet java.sql.Time skickas med hjälp av anslutningsegenskapen sendTimeAsDatetime . Mer information finns i Ange anslutningsegenskaper.

Du kan programmatiskt ändra värdet för anslutningsegenskapen sendTimeAsDatetime med SQLServerDataSource.setSendTimeAsDatetime.

Versioner av SQL Server tidigare än SQL Server 2008 (10.0.x) stöder inte tidsdatatypen, så program som använder java.sql.Time lagrar vanligtvis java.sql.Time-värden antingen som datetime- eller smalldatetime SQL Server-datatyper.

Om du vill använda SQL Server-datatyperna datetime och smalldatetimenär du arbetar med java.sql.Time-värden bör du ange anslutningsegenskapen sendTimeAsDatetime till true. Om du vill använda SQL Server-datatypen time när du arbetar med java.sql.Time-värden ska du ställa in anslutningsegenskapen sendTimeAsDatetime till false.

Skicka java.sql.Time-värden till en parameter vars datatyp också kan lagra datumet, att standarddatum skiljer sig beroende på om värdet java.sql.Time skickas som ett datetime-värde (1/1/1970) eller tidsvärde (1/1/1/1900). Mer information om datakonverteringar när du skickar data till en SQL Server finns i Använda datum- och tidsdata.

I SQL Server JDBC Driver 3.0 är sendTimeAsDatetime sant som standard. I en framtida version kan anslutningsegenskapen sendTimeAsDatetime vara inställd på false som standard.

För att säkerställa att programmet fortsätter att fungera som förväntat oavsett standardvärdet för anslutningsegenskapen sendTimeAsDatetime kan du:

  • Använd java.sql.Time när du arbetar med sqlserver-datatypen.
  • Använd java.sql.Timestamp när du arbetar med datatyperna datetime, smalldatetime och datetime2SQL Server.

SendTimeAsDatetime måste vara falskt för krypterade kolumner eftersom krypterade kolumner inte stöder konverteringen från tid till datum. Från och med Microsoft JDBC Driver 6.0 för SQL Server har klassen SQLServerConnection följande två metoder för att ange/hämta värdet för egenskapen sendTimeAsDatetime.

  public boolean getSendTimeAsDatetime()
  public void setSendTimeAsDatetime(boolean sendTimeAsDateTimeValue)

Se även

Förstå JDBC-drivrutinsdatatyperna