как обрабатывать нуль в поле даты postgresql - PullRequest
0 голосов
/ 14 сентября 2018

Я должен игнорировать строки, которые имеют null в столбце даты. Как я могу это сделать?

select s."SR Closed Date"::date,
       s."Service Request Number",
       a."Activity ID" 
from sr_data_master s,
     activity_master a
where s."Service Request Number" = a."Service Request Number"
and a."Service Request Number" is not null 
and a."Service Tag" is not null 
and a."Activity ID" is not null
and s."SR Closed Date"::date is not NULL
group by s."Service Request Number",
         s."SR Closed Date"::date,
         a."Activity ID";

Я получаю ошибку:

 invalid input syntax for type date: "NULL" 

Ответы [ 2 ]

0 голосов
/ 14 сентября 2018

Сообщение об ошибке указывает, что ваш столбец «date» (который, по-видимому, на самом деле не является столбцом даты) содержит строковую константу 'NULL', а не действительное значение null (поскольку нет проблем при приведении действительного null значение до date значение).

Вы можете использовать следующее условие для исключения этих строк:

and s."SR Closed Date" <> 'NULL'

Но правильным решением этой проблемы является сохранение значений датыв DATE столбцах.Тогда вам не понадобится приведение и вы не сможете сохранить недопустимые значения даты для начала.

0 голосов
/ 14 сентября 2018

null - допустимое значение для даты. Из сообщения об ошибке кажется, что в этом столбце хранится строка 'null'. Вы можете проверить это явно:

LOWER(s."SR Closed Date") <> 'null'

Или просто удалите приведение к date из предложения group by.

...