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