Return null for date_format when input is null in mysql
I'm doing something like this:
SELECT date_format(mydate, '%d/%m/%Y') FROM xyz;
When mydate is NULL, date_format returns 00/00/0000开发者_运维百科. This is correct, but how can I make it so that it returns NULL when the input is NULL?
SELECT IF(mydate,date_format(mydate, '%d/%m/%Y'),NULL) FROM xyz;
Source: http://dev.mysql.com/doc/refman/5.0/en/control-flow-functions.html
You can wrap this into a IF
-Clause, like this:
SELECT IF(mydate,DATE_FORMAT(mydate, '%d/%m/%Y'),NULL) FROM xyz;
That said, if your variable mydate
is not a date value, the query in your post should return (NULL)
anyway.
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,
精彩评论