Todos los productos
Search
Centro de documentos

Tablestore:Tipo de dato Date

Última actualización: Sep 29, 2026

Los datos de tipo Integer o String de una tabla se pueden mapear a datos de tipo Date en diversos formatos dentro de un search index creado para dicha tabla. Cuando se utiliza el search index para ejecutar una consulta por rango, el tipo Date ofrece un rendimiento superior al tipo String.

Precisión y rango

La precisión máxima de los datos de tipo Date es de nanosegundos. El rango de valores de estos datos es ["1970-01-01 00:00:00.000000000", "2262-04-11 23:47:16.854775807"].

Formatos de fecha

Los campos de tipo Integer o String de una tabla se pueden mapear a campos de tipo Date en un search index creado para dicha tabla. Además, es posible especificar el formato de estos campos. A continuación se describen los formatos disponibles.

Tipo de campo en las tablas de datos

Formato de los campos de tipo Date en los search indexes

Integer

Se puede utilizar un formato predefinido. Están disponibles los siguientes:

  • "epoch_second": indica una marca de tiempo en segundos. Por ejemplo, la marca de tiempo "1218197720" en segundos equivale a "2008-08-08 20:15:20".

  • "epoch_millis": indica una marca de tiempo en milisegundos. Por ejemplo, la marca de tiempo "1218197720123" en milisegundos equivale a "2008-08-08 20:15:20.123".

  • "epoch_micros": indica una marca de tiempo en microsegundos. Por ejemplo, la marca de tiempo "1218197720123456" en microsegundos equivale a "2008-08-08 20:15:20.123456".

  • "epoch_nanos": indica una marca de tiempo en nanosegundos. Por ejemplo, la marca de tiempo "1218197720123456789" en nanosegundos equivale a "2008-08-08 20:15:20.123456789".

String

Este tipo admite formatos personalizados. Los elementos siguientes describen los formatos de Date más comunes:

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

  • yyyyMMdd HHmmss

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

En los formatos anteriores, yyyy representa el año con cuatro dígitos, MM el mes, dd el día, HH la hora en formato de 24 horas, mm los minutos, ss los segundos, SSS la precisión de los segundos y X el desplazamiento de la zona horaria.

Para obtener más información, consulte Custom date formats.

Formatos de fecha personalizados

Carácter

Descripción

Ejemplo

y

El año.

  • yyyy: 2008.

  • yy: 08.

M

El mes.

  • M: 7.

  • MM: 07.

d

El día del mes.

  • d: 8.

  • dd: 08.

a

El periodo del día. En el sistema de 12 horas, el día se divide en dos periodos: ante meridiem (AM) y post meridiem (PM). AM indica antes del mediodía y PM después del mediodía.

  • a: AM.

  • a: PM.

K

La hora en formato AM o PM. Valores válidos: de 0 a 11.

  • K: 0.

  • KK: 00.

H

La hora del día en el sistema de 24 horas. Valores válidos: de 0 a 23.

  • H: 0.

  • HH: 00.

m

Los minutos.

  • m: 1.

  • mm: 01.

s

Los segundos.

  • s: 1.

  • ss: 01.

S

La precisión de los segundos. Puede contener de uno a nueve dígitos.

  • S: 3.

  • SSS: 234.

  • SSSSSSSSS: 123456789.

X

El desplazamiento de la zona horaria.

  • X: +01;Z.

  • XX: +0130;Z.

  • XXX: +01:30;Z

  • XXXX: +013015;Z.

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

x

El desplazamiento de la zona horaria.

  • x: +01;+00.

  • xx: +0130;+0000.

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

  • xxxx: +013015;+0000.

  • xxxxx: +01:30:15.

'

El calificador personalizado.

Las letras permiten definir calificadores personalizados. Si utiliza una cadena como calificador, esta debe encerrarse entre comillas simples ('').

Importante

No es necesario incluir los espacios ni los guiones (-) entre comillas simples.

''

El carácter de escape.

''

Compruebe un formato de Date

Antes de consultar datos con un formato de Date, se recomienda usar TermQuery o DateTimeFormatter en JDK 8 o versiones posteriores para comprobar si el formato es válido.

Uso de TermQuery

Cree un search index que incluya campos con el formato de Date especificado y utilice TermQuery para comprobar dicho formato. Si no se devuelve ningún error, el formato de Date es válido.

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

Uso de DateTimeFormatter

Importante
  • Si utiliza este método para comprobar el formato de Date en ciertas zonas horarias, podrían producirse errores.

  • Compruebe que instaló JDK 8 o una versión posterior.

Llame al método DateTimeFormatter de JDK para comprobar el formato de Date. Si no se devuelve ningún error, el formato es válido.

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

Referencias