Tous les produits
Search
Centre de documentation

Tablestore:Type de données Date

Dernière mise à jour :Sep 29, 2026

Vous pouvez mapper des données de type Integer ou String d'une table de données vers des données de type Date dans divers formats au sein d'un index de recherche créé pour cette table. Lorsque vous utilisez l'index de recherche pour effectuer une requête de plage, le type Date offre de meilleures performances que le type String.

Précision et plage

La précision maximale des données de type Date est la nanoseconde. La plage de valeurs des données de type Date est ["1970-01-01 00:00:00.000000000", "2262-04-11 23:47:16.854775807"].

Formats de date

Vous pouvez mapper des champs de type Integer ou String d'une table de données vers des champs de type Date dans un index de recherche créé pour cette table, et spécifiez le format des champs de type Date. Le tableau suivant décrit les formats disponibles.

Type de champ dans les tables de données

Format des champs de type Date dans les index de recherche

Integer

Vous pouvez utiliser un format prédéfini. Les formats prédéfinis suivants sont proposés :

  • « epoch_second » : spécifie un horodatage en secondes. Par exemple, l'horodatage en secondes "1218197720" correspond à "2008-08-08 20:15:20".

  • « epoch_millis » : spécifie un horodatage en millisecondes. Par exemple, l'horodatage en millisecondes "1218197720123" correspond à "2008-08-08 20:15:20.123".

  • « epoch_micros » : spécifie un horodatage en microsecondes. Par exemple, l'horodatage en microsecondes "1218197720123456" correspond à "2008-08-08 20:15:20.123456".

  • « epoch_nanos » : spécifie un horodatage en nanosecondes. Par exemple, l'horodatage en nanosecondes "1218197720123456789" correspond à "2008-08-08 20:15:20.123456789".

String

Les formats personnalisés sont pris en charge. Les éléments suivants décrivent les formats de date couramment utilisés :

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

  • yyyyMMdd HHmmss

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

Dans les formats précédents, yyyy spécifie l'année à quatre chiffres, MM spécifie le mois, dd spécifie le jour, HH spécifie l'heure au format 24 heures, mm spécifie la minute, ss spécifie la seconde, SSS spécifie la précision de la seconde et X spécifie le décalage du fuseau horaire.

Pour plus d'informations, consultez Formats de date personnalisés.

Formats de date personnalisés

Caractère

Description

Exemple

y

L'année.

  • yyyy : 2008.

  • yy : 08.

M

Le mois.

  • M : 7.

  • MM : 07.

d

Le jour du mois.

  • d : 8.

  • dd : 08.

a

La période de la journée. Dans le système horaire sur 12 heures, une journée est divisée en deux périodes : ante meridiem (AM) et post meridiem (PM). AM spécifie avant midi et PM spécifie après midi.

  • a : AM.

  • a : PM.

K

L'heure au format AM ou PM. Valeurs valides : 0 à 11.

  • K : 0.

  • KK : 00.

H

L'heure de la journée dans le système horaire sur 24 heures. Valeurs valides : 0 à 23.

  • H : 0.

  • HH : 00.

m

La minute.

  • m : 1.

  • mm : 01.

s

La seconde.

  • s : 1.

  • ss : 01.

S

La précision de la seconde. La précision peut contenir un à neuf chiffres.

  • S : 3.

  • SSS : 234.

  • SSSSSSSSS : 123456789.

X

Le décalage du fuseau horaire.

  • X : +01 ; Z.

  • XX : +0130 ; Z.

  • XXX : +01:30 ; Z

  • XXXX : +013015 ; Z.

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

x

Le décalage du fuseau horaire.

  • x : +01 ; +00.

  • xx : +0130 ; +0000.

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

  • xxxx : +013015 ; +0000.

  • xxxxx : +01:30:15.

'

Le qualificateur personnalisé.

Vous pouvez utiliser des lettres pour définir des qualificateurs personnalisés. Si vous utilisez une chaîne comme qualificateur, celle-ci doit être entourée de guillemets simples ('').

Important

Les espaces et les traits d'union (-) n'ont pas besoin d'être inclus entre guillemets simples.

''

Le caractère d'échappement.

''

Vérification d'un format de date

Avant d'utiliser un format de date pour interroger des données, nous vous recommandons d'utiliser TermQuery ou DateTimeFormatter dans JDK 8 ou une version ultérieure pour vérifier la validité du format de date.

Utilisation de TermQuery

Créez un index de recherche incluant des champs au format de date spécifié et utilisez TermQuery pour vérifier le format de date. Si aucune erreur n'est renvoyée, le format de date est valide.

public void testDateFormat(SyncClient client, String tableName, String indexName) {
    // Create a search index. 
    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);
    // Check the Date format. If no error is returned, the Date format is 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());
}

Utilisation de DateTimeFormatter

Important
  • Si vous utilisez cette méthode pour vérifier le format de date dans des fuseaux horaires spécifiques, des erreurs peuvent se produire.

  • Assurez-vous d'avoir installé JDK 8 ou une version ultérieure.

Appelez la méthode DateTimeFormatter dans JDK pour vérifier le format de date. Si aucune erreur n'est renvoyée, le format de date est valide.


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");
}

Références