如何在postgreSQL中将''转换为NULL

时间:2015-07-16 07:07:01

标签: postgresql

我有一个postgreSQL表,它接受yyyy-mm-dd格式的日期,如果传入的日期格式是''(没有日期),则不接受。当''作为日期传递时,可能会出现一些情况。任何人都可以帮我写一个函数来检查传入的日期是否为''然后用NULL替换它然后将它添加到数据库中。

2 个答案:

答案 0 :(得分:4)

使用nullif()

insert into the_table (the_date_column)
values (nullif(?, ''))

或更新

update the_table
  set the_date_column = nullif(?, '');

答案 1 :(得分:0)

您可以使用case表达式来检查这一点。我正在使用:arg来表示输入字符串 - 根据您使用的编程语言进行更改:

INSERT INTO mytable
(my_date_col)
VALUES (CASE LENGTH(:arg) WHEN 0 THEN NULL ELSE TO_DATE(:arg, 'yyyy-mm-dd' END)