PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Date JSONb:date effettive internamente?

JSON non ha un tipo "data". Il tipo JSONB (aggiunto in Pg 9.4 ) mappe ma non si estende su tipi primitivi JSON. Il valore visto è quello che è, testo.

Sebbene sia possibile aggiungere un indice sulle proprietà delle stringhe, l'attuale formato "prosa inglese" non sarà in grado di partecipare a interrogazioni di intervallo perché tali valori non sono ben ordinati nelle date.

Diversi modi di memorizzare date ben ordinate, date le restrizioni di tipo primitivo.

(Le sonde dell'indice di uguaglianza possono essere utilizzate anche se gli intervalli non possono .. a condizione che i valori corrispondano esattamente, il che è comunque soggetto all'utilizzo di una rappresentazione dei dati coerente.)

Quando si applica una query di intervallo sull'indice (JSONB / GIN), convertire i valori DATE nel tipo di dati JSON appropriato (associato a intero, numerico, testo in Pg) utilizzato per la proprietà "date"; non il contrario.

Quando si recuperano i valori, convertire il formato scelto in una DATA - è "ok" poiché ciò viene fatto dopo la query dell'intervallo è "obbligatoria" poiché JSONB non supporta in modo nativo date o orari.