全部产品
Search
文档中心

Tablestore:Tipe data Tanggal

更新时间:Jul 06, 2025

Anda dapat memetakan kolom bertipe Integer atau String dalam tabel data ke tipe Tanggal dengan berbagai format di indeks pencarian yang dibuat untuk tabel tersebut. Saat menggunakan indeks pencarian untuk kueri rentang, tipe Tanggal menawarkan performa lebih tinggi dibandingkan tipe String.

Presisi dan rentang

Presisi maksimum data Tanggal adalah nanodetik. Rentang nilai data Tanggal adalah ["1970-01-01 00:00:00.000000000", "2262-04-11 23:47:16.854775807"].

Format Tanggal

Anda dapat memetakan kolom bertipe Integer atau String dalam tabel data ke kolom bertipe Tanggal di indeks pencarian yang dibuat untuk tabel tersebut dan menentukan format kolom Tanggal. Tabel berikut menjelaskan format-format tersebut.

Tipe kolom dalam tabel data

Format kolom bertipe Tanggal dalam indeks pencarian

Integer

Anda dapat menggunakan format yang telah ditentukan sebelumnya. Format yang telah ditentukan sebelumnya berikut ini disediakan:

  • "epoch_second": menentukan timestamp dalam detik. Sebagai contoh, timestamp "1218197720" dalam detik menentukan "2008-08-08 20:15:20".

  • "epoch_millis": menentukan timestamp dalam milidetik. Sebagai contoh, timestamp "1218197720123" dalam milidetik menentukan "2008-08-08 20:15:20.123".

  • "epoch_micros": menentukan timestamp dalam mikrodetik. Sebagai contoh, timestamp "1218197720123456" dalam mikrodetik menentukan "2008-08-08 20:15:20.123456".

  • "epoch_nanos": menentukan timestamp dalam nanodetik. Sebagai contoh, timestamp "1218197720123456789" dalam nanodetik menentukan "2008-08-08 20:15:20.123456789".

String

Format kustom didukung. Item berikut ini menjelaskan format Tanggal yang umum digunakan:

  • yyyy-MM-dd HH:mm:ss.SSS

  • yyyyMMdd HHmmss

  • yyyy-MM-dd'T'HH:mm:ss.SSSX

Dalam format sebelumnya, yyyy menentukan tahun empat digit, MM menentukan bulan, dd menentukan hari, HH menentukan sistem 24 jam, mm menentukan menit, ss menentukan detik, SSS menentukan presisi detik, dan X menentukan offset zona waktu.

Untuk informasi lebih lanjut, lihat Format tanggal kustom.

Format tanggal kustom

Karakter

Deskripsi

Contoh

y

Tahun.

  • yyyy: 2008.

  • yy: 08.

M

Bulan.

  • M: 7.

  • MM: 07.

d

Hari dalam bulan.

  • d: 8.

  • dd: 08.

a

Periode waktu dalam sehari. Dalam sistem 12 jam, sehari dibagi menjadi dua periode: ante meridiem (AM) dan post meridiem (PM). AM menandakan sebelum tengah hari, sedangkan PM menandakan setelah tengah hari.

  • a: AM.

  • a: PM.

K

Jam dalam AM atau PM. Nilai valid: 0 hingga 11.

  • K: 0.

  • KK: 00.

H

Jam dalam sehari dalam sistem 24 jam. Nilai valid: 0 hingga 23.

  • H: 0.

  • HH: 00.

m

Menit.

  • m: 1.

  • mm: 01.

s

Yang kedua.

  • s: 1.

  • ss: 01.

S

Presisi detik. Presisi dapat mencakup satu hingga sembilan digit.

  • S: 3.

  • SSS: 234.

  • SSSSSSSSS: 123456789.

X

Offset zona waktu.

  • X: +01;Z.

  • XX: +0130;Z.

  • XXX: +01:30;Z.

  • XXXX: +013015;Z.

  • XXXXX: +01:30:15;Z.

x

Offset zona waktu.

  • x: +01;+00.

  • xx: +0130;+0000.

  • xxx: +01:30;+00:00.

  • xxxx: +013015;+0000.

  • xxxxx: +01:30:15.

'

Kualifikasi kustom.

Anda dapat menggunakan huruf untuk mendefinisikan kualifikasi kustom. Jika Anda menggunakan string sebagai kualifikasi, string tersebut harus dilingkupi oleh sepasang tanda kutip tunggal ('').

Penting

Spasi dan tanda hubung (-) tidak perlu dimasukkan dalam tanda kutip tunggal.

''

Karakter escape.

''

Verifikasi format Tanggal

Sebelum menggunakan format Tanggal untuk mengkueri data, kami sarankan Anda menggunakan TermQuery atau DateTimeFormatter di JDK 8 atau yang lebih baru untuk memeriksa apakah format Tanggal valid.

Gunakan TermQuery

Buat indeks pencarian yang mencakup kolom dengan format Tanggal yang ditentukan dan gunakan TermQuery untuk memeriksa format Tanggal. Jika tidak ada kesalahan yang dikembalikan, format Tanggal valid.

public void testDateFormat(SyncClient client, String tableName, String indexName) {
    // Buat indeks pencarian.
    CreateSearchIndexRequest request = new CreateSearchIndexRequest();
    request.setTableName(tableName);
    request.setIndexName(indexName);
    IndexSchema indexSchema = new IndexSchema();
    indexSchema.setFieldSchemas(Arrays.asList(
        new FieldSchema("col_date", FieldType.DATE)
        .setIndex(true)
        .setEnableSortAndAgg(true)
        .setDateFormats(Arrays.asList("yyyy-MM-dd HH:mm:ss.SSS"))
    ));
    request.setIndexSchema(indexSchema);
    client.createSearchIndex(request);
    // Periksa format Tanggal. Jika tidak ada kesalahan yang dikembalikan, format Tanggal valid.
    client.search(SearchRequest.newBuilder()
                  .tableName(tableName)
                  .indexName(indexName)
                  .searchQuery(SearchQuery
                               .newBuilder()
                               .query(QueryBuilders.term("col_date", "2022-12-12 12:10:03.123")).build())
                  .build());
}

Gunakan DateTimeFormatter

Penting
  • Jika Anda menggunakan metode ini untuk memeriksa format Tanggal dalam zona waktu tertentu, kesalahan mungkin terjadi.

  • Pastikan Anda telah menginstal JDK 8 atau yang lebih baru.

Panggil metode DateTimeFormatter di JDK untuk memeriksa format Tanggal. Jika tidak ada kesalahan yang dikembalikan, format Tanggal valid.


import java.time.format.DateTimeFormatter;

public void testFormatByJdk8() {
    DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS").parse("2022-12-12 12:10:03.123");
}

Referensi

  • Untuk menggunakan data bertipe Tanggal, Anda dapat mengonfigurasi kolom Tanggal saat membuat indeks pencarian di konsol Tablestore atau menggunakan SDK Tablestore. Untuk informasi lebih lanjut, lihat Buat Indeks Pencarian.

  • Saat menggunakan indeks pencarian untuk mengkueri data, Anda dapat menggunakan metode kueri berikut: kueri tepat, kueri terms, kueri match all, kueri match, kueri match phrase, kueri prefix, kueri rentang, kueri wildcard, kueri fuzzy, kueri Boolean, kueri geo, kueri nested, kueri vektor KNN, dan kueri exists. Anda dapat memilih metode kueri sesuai kebutuhan bisnis untuk mengkueri data dari berbagai dimensi.

    Anda dapat mengurutkan atau membagi halaman baris yang memenuhi kondisi kueri menggunakan fitur pengurutan dan pembagian halaman. Untuk informasi lebih lanjut, lihat Lakukan Pengurutan dan Pembagian Halaman.

    Anda dapat menggunakan fitur collapse (distinct) untuk menggabungkan set hasil berdasarkan kolom tertentu. Dengan cara ini, data dari tipe yang ditentukan hanya muncul sekali dalam hasil kueri. Untuk informasi lebih lanjut, lihat Collapse (Distinct).

  • Jika Anda ingin menganalisis data dalam tabel data, Anda dapat menggunakan fitur agregasi operasi Pencarian atau mengeksekusi pernyataan SQL. Sebagai contoh, Anda dapat memperoleh nilai minimum dan maksimum, jumlah, serta total jumlah baris. Untuk informasi lebih lanjut, lihat Agregasi dan Kueri SQL.

  • Jika Anda ingin memperoleh semua baris yang memenuhi kondisi kueri tanpa perlu mengurutkan baris-baris tersebut, Anda dapat memanggil operasi ParallelScan dan ComputeSplits untuk menggunakan fitur pemindaian paralel. Untuk informasi lebih lanjut, lihat Pemindaian Paralel.