Mengonfigurasi bagaimana nilai java.sql.Time dikirim

Unduh driver JDBC

Jika Anda menggunakan objek java.sql.Time atau jenis java.sql.Types.TIME JDBC untuk mengatur parameter, Anda dapat mengonfigurasi bagaimana nilai java.sql.Time dikirim ke server; baik sebagai jenis waktu SQL Server atau sebagai jenis tanggalwaktu.

Skenario ini berlaku saat menggunakan salah satu metode berikut:

SendTimeAsDatetime

Anda dapat mengonfigurasi bagaimana nilai java.sql.Time dikirim dengan menggunakan properti koneksi sendTimeAsDatetime . Untuk informasi selengkapnya, lihat Mengatur Properti Koneksi.

Anda dapat memodifikasi nilai properti koneksi sendTimeAsDatetime secara terprogram dengan SQLServerDataSource.setSendTimeAsDatetime.

Versi SQL Server yang lebih lama dari SQL Server 2008 (10.0.x) tidak mendukung jenis data waktu, sehingga aplikasi yang menggunakan java.sql.Time biasanya menyimpan nilai java.sql.Time baik sebagai tanggalwaktu atau smalldatetime SQL Server jenis data.

Jika Anda ingin menggunakan datetime dan smalldatetime SQL Server jenis data saat bekerja dengan nilai java.sql.Time, Anda harus mengatur properti koneksi sendTimeAsDatetime ke true. Jika Anda ingin menggunakan waktu SQL Server jenis data saat bekerja dengan nilai java.sql.Time, Anda harus mengatur properti koneksi sendTimeAsDatetime ke false.

Mengirim nilai java.sql.Time ke dalam parameter yang jenis datanya juga dapat menyimpan tanggal, tanggal default tersebut berbeda tergantung pada apakah nilai java.sql.Time dikirim sebagai nilai tanggalwaktu (1/1/1970) atau waktu (1/1/1900). Untuk informasi selengkapnya tentang konversi data saat mengirim data ke SQL Server, lihat Menggunakan Data Tanggal dan Waktu.

Dalam SQL Server JDBC Driver 3.0, sendTimeAsDatetime adalah true secara default. Dalam rilis mendatang, properti koneksi sendTimeAsDatetime dapat diatur ke false secara default.

Untuk memastikan bahwa aplikasi Anda terus berfungsi seperti yang diharapkan terlepas dari nilai default properti koneksi sendTimeAsDatetime , Anda dapat:

  • Gunakan java.sql.Time saat bekerja dengan waktu SQL Server jenis data.
  • Gunakan java.sql.Timestamp saat bekerja dengan jenis data datetime, smalldatetime, dan datetime2 SQL Server.

SendTimeAsDatetime harus false untuk kolom terenkripsi karena kolom terenkripsi tidak mendukung konversi dari waktu ke tanggalwaktu. Dimulai dengan Microsoft JDBC Driver 6.0 untuk SQL Server, kelas SQLServerConnection memiliki dua metode berikut untuk mengatur/mendapatkan nilai properti sendTimeAsDatetime.

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

Lihat juga

Memahami jenis data driver JDBC