PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Datas JSONb:datas reais internamente?


JSON não tem um tipo "data". O tipo JSONB (adicionado em Pg 9.4 ) mapeia, mas não se estende em tipos primitivos JSON. O valor visto é o que é, texto.

Embora um índice possa ser adicionado sobre propriedades de string, o formato atual de "prosa em inglês" não poderá participar de consultas de intervalo porque esses valores não são bem ordenados ao longo das datas.

Diferentes maneiras de armazenar datas bem ordenadas, dadas as restrições de tipo primitivo.

(As sondagens de índice de igualdade podem ser usadas mesmo se os intervalos não puderem .. desde que os valores correspondam exatamente, o que ainda está sujeito ao uso de uma representação de dados consistente.)

Ao aplicar uma consulta de intervalo sobre o índice (JSONB/GIN) converta os valores DATE para o tipo de dados JSON apropriado (mapeado para inteiro, numérico, texto em Pg) usado para a propriedade "data"; não de outra forma.

Ao buscar os valores, converta o formato escolhido para uma DATA - tudo bem, pois isso é feito depois a consulta de intervalo e 'obrigatório', pois o JSONB não oferece suporte nativo a datas ou horas.