Použijte NULLIF
ve vašem příkazu INSERT:
INSERT INTO your_table (cols..., some_date) VALUES (..., NULLIF(your_input_field, ''))
Pokud chcete vložit NULL, pokud je daná hodnota některá z mnoha hodnot, může být nejjednodušší použít příkaz CASE:
INSERT INTO your_table (cols..., some_date)
VALUES (..., CASE WHEN your_input_field IN ('', '#', '-', '--', '??') THEN NULL ELSE your_input_field END)
Mohlo by to udělat totéž s polem, pokud je to jednodušší:
INSERT INTO your_table (cols..., some_date)
VALUES (..., CASE WHEN your_input_field = ANY('{"",#,-,--,??}'::TEXT[]) THEN NULL ELSE your_input_field END)