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

Data recente dell'array Postgres json

demo passo passo:db<>fiddle

SELECT 
    elem.value ->> 'date' as thedate,
    elem.value ->> 'note' as note
FROM t,
    json_array_elements(data) elem                                  -- 1 
WHERE id = 4123
ORDER BY to_timestamp(elem ->> 'date', 'DD/MM/YYYY HH24:MI') DESC   -- 2
LIMIT 1                                                             -- 3
  1. Estrai tutti gli elementi dell'array in una riga
  2. Leggi la stringa datetime da date campo, convertilo in timestamp e utilizzalo per ordinare tutti gli elementi dell'array con il timestamp più recente per primo
  3. Restituisci solo il primo (=più recente) elemento dell'array.