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.
-
Variante ISO 8601 specifica (con stesso fuso orario); testo
-
ora UNIX o "Tempo JavaScript" con millisecondi; intero
-
Giorno di Giuliano (consulta il formato data 'J' ); numerico
(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.