sql >> Databasteknik >  >> RDS >> PostgreSQL

JSONb-datum:faktiska datum internt?

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.

(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.




  1. PL/pgSQL-funktioner:Hur man returnerar en normal tabell med flera kolumner med hjälp av en execute-sats

  2. Konvertera 'datetimeoffset' till 'datetime2' i SQL Server (T-SQL-exempel)

  3. SSIS:Oracle Flera rader till en kolumn utdata utan STRAGG

  4. Hur man går igenom en avgränsad lista i Oracle PLSQL