Gebruik NULLIF
in uw INSERT-instructie:
INSERT INTO your_table (cols..., some_date) VALUES (..., NULLIF(your_input_field, ''))
Als u NULL wilt invoegen als de betreffende waarde een van een aantal waarden is, is het misschien het gemakkelijkst om een CASE-instructie te gebruiken:
INSERT INTO your_table (cols..., some_date)
VALUES (..., CASE WHEN your_input_field IN ('', '#', '-', '--', '??') THEN NULL ELSE your_input_field END)
Zou hetzelfde kunnen doen met een array, als dat makkelijker is:
INSERT INTO your_table (cols..., some_date)
VALUES (..., CASE WHEN your_input_field = ANY('{"",#,-,--,??}'::TEXT[]) THEN NULL ELSE your_input_field END)