sql >> Base de Datos >  >> RDS >> PostgreSQL

Cambie la cadena vacía a NULL cuando la columna tenga una restricción de FECHA

Utilice NULLIF en su declaración INSERT:

INSERT INTO your_table (cols..., some_date) VALUES (..., NULLIF(your_input_field, ''))

Si desea insertar NULL si el valor en cuestión es cualquiera de una serie de valores, puede ser más fácil usar una instrucción CASE:

INSERT INTO your_table (cols..., some_date)
VALUES (..., CASE WHEN your_input_field IN ('', '#', '-', '--', '??') THEN NULL ELSE your_input_field END)

También podría hacer lo mismo con una matriz, si eso es más fácil:

INSERT INTO your_table (cols..., some_date)
VALUES (..., CASE WHEN your_input_field = ANY('{"",#,-,--,??}'::TEXT[]) THEN NULL ELSE your_input_field END)