Я делаю что-то вроде этого:
SELECT date_format(mydate, '%d/%m/%Y') FROM xyz;
Когда mydate равен NULL, date_format возвращает 00/00/0000. Это правильно, но как я могу сделать так, чтобы он возвращал NULL, когда ввод NULL?
SELECT IF(mydate,date_format(mydate, '%d/%m/%Y'),NULL) FROM xyz;
Источник: http://dev.mysql.com/doc/refman/5.0/en/control-flow-functions.html
Вы можете заключить это в IF -Клаузу, например так:
IF
SELECT IF(mydate,DATE_FORMAT(mydate, '%d/%m/%Y'),NULL) FROM xyz;
Тем не менее, если ваша переменная mydate не является значением даты, запрос в вашем сообщении должен вернуть (NULL) в любом случае.
mydate
(NULL)
select case when isnull(mydate) then null else date_format(mydate, '%d/%m/%Y') end as mydate from xyz;
case when date_format(mydate, '%d/%m/%Y') = 00/00/0000 then null else /// end as mydate,