JSON няма тип "дата". Типът JSONB (добавен в Pg 9.4 ) карти, но не се разширява при примитивни типове JSON. Видяната стойност е това, което е, текст.
Въпреки че може да се добави индекс към свойствата на низа, текущият формат "English prose" няма да може да участва в заявки за диапазон тъй като такива стойности не са добре подредени по дати.
Различни начини за съхраняване на добре подредени дати, предвид ограниченията на примитивния тип.
-
Конкретен вариация на ISO 8601 (със същата часова зона); текст
-
UNIX време или "JavaScript време" с милисекунди; цяло число
-
Юлиански ден (вижте Формат за дата 'J' ); числово
(Могат да се използват проби за индекс на равенство, дори ако диапазоните не могат .. при условие че стойностите съвпадат точно, което все още зависи от използването на последователно представяне на данни.)
Когато прилагате заявка за диапазон върху (JSONB / GIN) индекса, преобразувайте стойностите на DATE в подходящия тип данни JSON (съпоставен на цяло число, число, текст в Pg), използван за свойството "date"; не по друг начин.
Когато извличате стойностите, преобразувайте избрания формат в ДАТА - това е „добре“, тъй като това се прави след заявката за диапазон и „задължително“, тъй като JSONB не поддържа първоначално дати или часове.