DATE_SUB
ist eine MySQL-Funktion, die in PostgreSQL nicht existiert.
Sie können (zum Beispiel) entweder verwenden;
NOW() - '30 MINUTES'::INTERVAL
...oder...
NOW() - INTERVAL '30' MINUTE
...oder...
NOW() - INTERVAL '30 MINUTES'
als Ersatz.
Ein SQLfiddle mit allen 3 zum Testen .