JSON har ingen "datum"-typ. JSONB-typen (tillagd i sid 9.4 ) kartor men förlänger inte på JSON primitiva typer. Värdet som ses är vad det är, text.
Även om ett index kan läggas till över strängegenskaper kommer det nuvarande formatet "engelsk prosa" inte att kunna delta i intervallfrågor eftersom sådana värden inte är välordnade över datum.
Olika sätt att lagra välordnade datum med tanke på de primitiva typbegränsningarna.
-
Specifik ISO 8601-variant (med samma tidszon); text
-
UNIX-tid eller "JavaScript-tid" med millisekunder; heltal
-
Juliandagen (se 'J'-datumformatet ); numerisk
(Jämlikhetsindexsonder kan användas även om intervall inte kan .. förutsatt att värdena matchar exakt, vilket fortfarande är föremål för användning av en konsekvent datarepresentation.)
När du tillämpar en intervallfråga över (JSONB / GIN)-indexet, konvertera DATE-värdena till lämplig JSON-datatyp (mappad till heltal, numerisk, text i Pg) som används för "date"-egenskapen; inte åt andra hållet.
När du hämtar värdena, konvertera det valda formatet till ett DATUM - det är "okej" eftersom detta görs efter intervallfrågan och "obligatoriskt" eftersom JSONB inte har inbyggt stöd för datum eller tider.