全部产品
Search
文档中心

Tablestore:Menanyakan data tanggal dan waktu

更新时间:Jul 02, 2025

Topik ini menjelaskan cara menanyakan data datetime, data tanggal, dan data waktu dalam respons dari pernyataan SQL.

Prasyarat

  • Tablestore SDK for Java V5.16.0 atau yang lebih baru telah diinstal. Untuk informasi lebih lanjut, lihat Instal Tablestore SDK for Java.

    Penting

    Tablestore SDK for Java V5.16.0 dan yang lebih baru mendukung pengembalian data datetime, data tanggal, dan data waktu dalam respons dari pernyataan SQL. Untuk informasi lebih lanjut tentang riwayat versi Tablestore SDK for Java, lihat Riwayat Versi Tablestore SDK for Java.

  • Klien telah diinisialisasi. Untuk informasi lebih lanjut, lihat bagian "Inisialisasi Klien" dari topik Inisialisasi.

  • Tabel pemetaan telah dibuat. Untuk informasi lebih lanjut, lihat Buat Tabel Pemetaan untuk Sebuah Tabel.

Operasi API

Tabel berikut menggambarkan operasi API yang dapat Anda panggil untuk menanyakan berbagai jenis data tanggal dan waktu. Pilih operasi berdasarkan jenis data tanggal dan waktu yang ingin Anda tanyakan.

Penting

Zona waktu default dari data yang dikembalikan oleh operasi getDateTime adalah dalam UTC. Konversikan zona waktu sesuai dengan kebutuhan bisnis Anda.

Jenis waktu

Operasi

Parameter

Tipe nilai kembali

Datetime

getDateTime

columnIndex (tipe INT)

java.time.ZonedDateTime

Datetime

getDateTime

columnName (tipe STRING)

java.time.ZonedDateTime

Waktu

getTime

columnIndex (tipe INT)

java.time.Duration

Waktu

getTime

columnName (tipe STRING)

java.time.Duration

Tanggal

getDate

columnIndex (tipe INT)

java.time.LocalDate

Tanggal

getDate

columnName (tipe STRING)

java.time.LocalDate

Parameter

Parameter

Deskripsi

query

Pernyataan SQL. Konfigurasikan parameter berdasarkan fitur yang diperlukan.

Contoh

Anda dapat mengeksekusi pernyataan select from_unixtime(time_col) as datetime_value, time(from_unixtime(time_col)) as time_value, or date(from_unixtime(time_col)) as date_value from test_table limit 1 untuk menanyakan data dalam kolom time_col dari tabel test_table dan mengonversi data tersebut menjadi data datetime, data waktu, dan data tanggal. Maksimal satu baris data akan dikembalikan. Sistem mengembalikan tipe permintaan, skema respons, dan hasil respons dari pernyataan SQL.

private static void queryData(SyncClient client) {
  // Buat permintaan SQL. 
  SQLQueryRequest request = new SQLQueryRequest("select from_unixtime(time_col) as datetime_value,time(from_unixtime(time_col)) as time_value, date(from_unixtime(time_col)) as date_value from test_table limit 1");

  // Dapatkan respons dari permintaan SQL. 
  SQLQueryResponse response = client.sqlQuery(request);

  // Dapatkan tipe permintaan SQL. 
  System.out.println("response type: " + response.getSQLStatementType());

  // Dapatkan skema respons dari pernyataan SQL. 
  SQLTableMeta tableMeta = response.getSQLResultSet().getSQLTableMeta();
  System.out.println("response table meta: " + tableMeta.getSchema());

  // Dapatkan hasil respons dari pernyataan SQL. 
  SQLResultSet resultSet = response.getSQLResultSet();
  System.out.println("response resultset:");
  while (resultSet.hasNext()) {
      SQLRow row = dateTypeSelectResultSet.next();
      System.out.println(row.getDateTime(0).withZoneSameInstant(ZoneId.systemDefault()) + ", " + row.getDateTime("datetime_value").withZoneSameInstant(ZoneId.systemDefault()) + ", " +
              row.getTime(1) + ", " + row.getTime("time_value") + ", " +
              row.getDate(2) + ", " + row.getDate("date_value"));
  }
}

Contoh Respons:

date type select query begin
response type: SQL_SELECT
response table meta: [datetime_value:DATETIME, time_value:TIME, date_value:DATE]
response resultset:
2023-11-09T10:14:00.010+08:00[Asia/Shanghai], 2023-11-09T10:14:00.010+08:00[Asia/Shanghai], PT10H14M0.01S, PT10H14M0.01S, 2023-11-09, 2023-11-09
select query end