Todos os produtos
Search
Central de documentação

Tablestore:Tipo de dados Date

Última atualização: Jul 03, 2026

Mapeie dados do tipo Integer ou String de uma tabela de dados para o tipo Date em diversos formatos no índice de pesquisa dessa tabela. Em consultas de intervalo, o tipo Date oferece desempenho superior ao tipo String.

Precisão e intervalo

A precisão máxima dos dados Date é de nanossegundos. O intervalo de valores válidos para Date é ["1970-01-01 00:00:00.000000000", "2262-04-11 23:47:16.854775807"].

Formatos de data

Mapeie campos do tipo Integer ou String de uma tabela de dados para campos do tipo Date no índice de pesquisa associado e especifique o formato desses campos. A tabela a seguir descreve os formatos disponíveis.

Tipo de campo nas tabelas de dados

Formato dos campos do tipo Date nos índices de pesquisa

Integer

Use um formato predefinido. Os seguintes formatos estão disponíveis:

  • "epoch_second": indica um timestamp em segundos. Por exemplo, o timestamp "1218197720" em segundos corresponde a "2008-08-08 20:15:20".

  • "epoch_millis": indica um timestamp em milissegundos. Por exemplo, o timestamp "1218197720123" em milissegundos corresponde a "2008-08-08 20:15:20.123".

  • "epoch_micros": indica um timestamp em microssegundos. Por exemplo, o timestamp "1218197720123456" em microssegundos corresponde a "2008-08-08 20:15:20.123456".

  • "epoch_nanos": indica um timestamp em nanossegundos. Por exemplo, o timestamp "1218197720123456789" em nanossegundos corresponde a "2008-08-08 20:15:20.123456789".

String

Há suporte para formatos personalizados. Os itens a seguir descrevem os formatos de Date mais comuns:

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

  • yyyyMMdd HHmmss

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

Nos formatos acima, yyyy representa o ano com quatro dígitos; MM, o mês; dd, o dia; HH, a hora no formato de 24 horas; mm, os minutos; ss, os segundos; SSS, a precisão dos segundos; e X, o deslocamento do fuso horário.

Para mais informações, consulte Formatos de data personalizados.

Formatos de data personalizados

Caractere

Descrição

Exemplo

y

O ano.

  • yyyy: 2008.

  • yy: 08.

M

O mês.

  • M: 7.

  • MM: 07.

d

O dia do mês.

  • d: 8.

  • dd: 08.

a

O período do dia. No sistema de 12 horas, o dia divide-se em dois períodos: ante meridiem (AM) e post meridiem (PM). AM indica antes do meio-dia e PM indica após o meio-dia.

  • a: AM.

  • a: PM.

K

A hora no formato AM ou PM. Valores válidos: 0 a 11.

  • K: 0.

  • KK: 00.

H

A hora do dia no sistema de 24 horas. Valores válidos: 0 a 23.

  • H: 0.

  • HH: 00.

m

O minuto.

  • m: 1.

  • mm: 01.

s

O segundo.

  • s: 1.

  • ss: 01.

S

A precisão do segundo. A precisão pode conter de um a nove dígitos.

  • S: 3.

  • SSS: 234.

  • SSSSSSSSS: 123456789.

X

O deslocamento do fuso horário.

  • X: +01;Z.

  • XX: +0130;Z.

  • XXX: +01:30;Z

  • XXXX: +013015;Z.

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

x

O deslocamento do fuso horário.

  • x: +01;+00.

  • xx: +0130;+0000.

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

  • xxxx: +013015;+0000.

  • xxxxx: +01:30:15.

'

O qualificador personalizado.

Use letras para definir qualificadores personalizados. Se utilizar uma string como qualificador, coloque-a entre aspas simples ('').

Importante

Não é necessário colocar espaços e hifens (-) entre aspas simples.

''

O caractere de escape.

''

Validar um formato de Date

Antes de consultar dados com um formato de Date, valide o formato usando TermQuery ou DateTimeFormatter no JDK 8 ou superior.

Usar TermQuery

Crie um índice de pesquisa que inclua campos com o formato de Date especificado e use TermQuery para validar o formato. Se o sistema não retornar nenhum erro, o formato de Date será 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());
}

Usar DateTimeFormatter

Importante
  • Este método pode gerar erros ao validar o formato de Date em fusos horários específicos.

  • Verifique se você instalou o JDK 8 ou superior.

Chame o método DateTimeFormatter no JDK para validar o formato de Date. Se o sistema não retornar nenhum erro, o formato será 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");
}

Referências