Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Jeśli używasz obiektu java.sql.Time lub typu java.sql.Types.TIME JDBC w celu ustawienia parametru, możesz skonfigurować sposób wysyłania wartości java.sql.Time na serwer; jako typ godziny programu SQL Server lub jako typ daty/godziny .
Ten scenariusz ma zastosowanie w przypadku korzystania z jednej z następujących metod:
- SQLServerCallableStatement.registerOutParameter(int, int)
- SQLServerCallableStatement.registerOutParameter(int, int, int)
- SQLServerCallableStatement.setTime
- SQLServerPreparedStatement.setTime
- SQLServerCallableStatement.setObject
- SQLServerPreparedStatement.setObject
SendTimeAsDatetime
Możesz skonfigurować sposób wysyłania wartości java.sql.Time przy użyciu właściwości połączenia sendTimeAsDatetime . Aby uzyskać więcej informacji, zobacz Ustawianie właściwości połączenia.
Można programowo zmodyfikować wartość właściwości połączenia sendTimeAsDatetime za pomocą polecenia SQLServerDataSource.setSendTimeAsDatetime.
Wersje programu SQL Server starsze niż SQL Server 2008 (10.0.x) nie obsługują typu danych time, dlatego aplikacje używające java.sql.Time zazwyczaj przechowują wartości java.sql.Time jako typy danych datetime lub smalldatetime programu SQL Server.
Jeśli chcesz użyć typów danych datetime i smalldatetimeprogramu SQL Server podczas pracy z wartościami java.sql.Time, ustaw właściwość połączenia sendTimeAsDatetime na true. Jeśli chcesz użyć typu danych programu SQL Server podczas pracy z wartościami java.sql.Time, ustaw właściwość połączenia sendTimeAsDatetime na wartość false.
Wysyłanie wartości java.sql.Time do parametru, którego typ danych może również przechowywać datę, powoduje, że daty domyślne różnią się w zależności od tego, czy wartość java.sql.Time jest wysyłana jako datetime (1/1/1970) lub jako time (1/1/1900). Aby uzyskać więcej informacji na temat konwersji danych podczas wysyłania danych do programu SQL Server, zobacz Używanie danych daty i godziny.
W sterowniku JDBC programu SQL Server 3.0 właściwość sendTimeAsDatetime jest domyślnie prawdziwa. W przyszłej wersji właściwość połączenia sendTimeAsDatetime może być domyślnie ustawiona na wartość false.
Aby upewnić się, że aplikacja nadal działa zgodnie z oczekiwaniami niezależnie od domyślnej wartości właściwości połączenia sendTimeAsDatetime , możesz:
- Użyj java.sql.Time podczas pracy z typem danych time w SQL Server.
- Użyj java.sql.Timestamp podczas pracy z typami danych datetime, smalldatetime i datetime2 SQL Server.
Funkcja SendTimeAsDatetime musi być fałszywa dla zaszyfrowanych kolumn, ponieważ zaszyfrowane kolumny nie obsługują konwersji od godziny do daty/godziny. Począwszy od sterownika Microsoft JDBC Driver 6.0 dla programu SQL Server, klasa SQLServerConnection ma następujące dwie metody ustawiania/pobierania wartości właściwości sendTimeAsDatetime.
public boolean getSendTimeAsDatetime()
public void setSendTimeAsDatetime(boolean sendTimeAsDateTimeValue)