# Pesquisa por Datas
A aplicação permite-lhe realizar pesquisas por data em qualquer campo que seja de um tipo relativo a datas. Desta forma é possível obter resultados referentes a um período temporal especifico. Neste tipo de campos pode pesquisar por períodos de tempo relativos a anos, meses, semanas, dias, horas, minutos ou segundos.
Para pesquisar por resultados relativos a um determinado intervalo de datas, podemos utilizar os símbolos >
(posterior a), =
(igual a) e <
(anterior a).
Uma pesquisa pode ser feita por ano (y
), mês (M
), semana (w
), dia (d
), hora (h
ou H
), minuto (m
) ou segundo (s
). Para adicionar uma hora, escreva +1h
na caixa de pesquisa. Para subtrair um dia, escreva -1d
.
TIP
Se quiser experimentar exemplos mais aproximados do mundo real, consulte esta lista.
Para além da data actual (now
), podemos também utilizar uma data de referência relativa que pode ser específica como 2010/01/01
. Neste campo, devemos utilizar o símbolo ||
a seguir à data: 2010/01/01||
. De seguida podemos utilizar opcionalmente uma ou mais expressões matemáticas: -1y
como em 2010-01-01||-1y
-, +2M
, -4w
, etc.
WARNING
Tenha por favor em conta que, em todas as pesquisas baseadas em datas que incluem um mais caracteres especiais, é necessário inserir uma barra lateral invertida - \
- antes de cada.
Uma forma alternativa de utilizar uma data específica de referência consiste em utilizar a pesquisa estruturada. O recurso à pesquisa estruturada para pesquisar por intervalos de datas é possível desde que o campo utilizado para pesquisa aceite uma data como valor. Neste caso, o utilizador será convidado a seleccionar uma data específica no formato dd/mm/aaaa
a partir de um calendário que surgirá automaticamente assim que clicar com o botão do rato dentro do campo de pesquisa.
Finalmente, uma terceira maneira de encontrar resultados relativos a um intervalo de datas é utilizar a seguinte expressão: [data_de_inicio TO data_de_fim]
como em [2022-11-10 TO 2022-11-11]
. Clique nesta ligação (opens new window) para experimentar por si próprio ou siga este breve vídeo incluído em baixo:
<DescriptVideo id="MwZ97MDa94O". />
A sintaxe de intervalos do ElasticSearch (o motor de pesquisa da plataforma da CoB) também suporta (opens new window) o recurso a um asterisco - * - em vez de uma data específica no tempo, como em [2022-11-10 TO *]
(teste aqui (opens new window)) ou [* TO 2022-11-10] (teste aqui (opens new window)). A inclusão do asterisco significa que queremos obter resultados relativos a todos os registos desde o primeiro que existe até à data final indicada ou, em alternativa, desde a data inicial indicada até ao último registo criado.
Se quisermos obter todos os registos cujo período de tempo seja correspondente ao ano/mês/dia/etc. actual, basta inserir uma barra lateral - /
- e fazer escape da mesma - \/
-, seguido do caracter correspondente ao período-limite pretendido. Tal operação pode ser colocada antes ou depois da expressão matemática. Por exemplo, os registos obtidos por now\/d-1h
serão em princípio equivalentes aos obtidos com now-1h\/d
*.
Em baixo poderá encontrar uma explicação mais detalhada de como é que as pesquisas baseadas em datas funcionam.
# Alguns exemplos retirados (opens new window) da documentação de ElasticSearch:
Partindo do princípio que a data actual (now
) corresponde a 2001-01-01 12:00:00:000
, alguns exemplos são:
Exemplo | Explicação |
---|---|
now+1h | todos os resultados correspondentes à data actual mais uma hora. Converte para: 2001-01-01 13:00:00:000 |
now-1h | todos os resultados correspondentes à data actual menos uma hora. Converte para: 2001-01-01 11:00:00:000 |
now-1h/d | todos os resultados correspondentes à data actual menos uma hora, registados a partir das 00:00 UTC desse mesmo dia. Converte para: 2001-01-01 00:00:00:000 |
2001-02-01\|\|+1M\/d | 2001-02-01 em milisegundos mais um mês. Converte para: 2001-03-01 00:00:00 |
# Vídeo: exemplo adicional
Passos:
- Neste caso específico, e com base nos dados que temos, vamos realizar pesquisas com datas anteriores ao presente em 5, 6 e 7 anos.
- Por exemplo, se precisamos de todas as instâncias referentes a dados registados até 5 anos antes da data actual, escrevemos
year
- o nome do campo - seguido de.date
para indicar que se trata de um campo referente a uma data, e por fim:<now-5y
. A expressão completa de pesquisa será entãoyear.date:<now-5y
. - Se quiséssemos pesquisar por resultados agendados para os próximos dois anos, precisaríamos de acrescentar a data actual (
now
) a2y
:now+2y
.
* Isto é, a menos que no período actual do ano se encontre em vigor o horário de verão.