Brug NULLIF
i din INSERT-sætning:
INSERT INTO your_table (cols..., some_date) VALUES (..., NULLIF(your_input_field, ''))
Hvis du vil indsætte NULL, hvis den pågældende værdi er en af flere værdier, kan det være nemmest at bruge en CASE-sætning:
INSERT INTO your_table (cols..., some_date)
VALUES (..., CASE WHEN your_input_field IN ('', '#', '-', '--', '??') THEN NULL ELSE your_input_field END)
Kunne også gøre det samme med et array, hvis det er nemmere:
INSERT INTO your_table (cols..., some_date)
VALUES (..., CASE WHEN your_input_field = ANY('{"",#,-,--,??}'::TEXT[]) THEN NULL ELSE your_input_field END)