我正在做这样的事情:
SELECT date_format(mydate, '%d/%m/%Y') FROM xyz;
当mydate为NULL时,date_format返回00/00/0000。这是正确的,但是如何使它在输入为NULL时返回NULL?
答案 0 :(得分:12)
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
答案 1 :(得分:1)
您可以将其包装成IF
- Clause,如下所示:
SELECT IF(mydate,DATE_FORMAT(mydate, '%d/%m/%Y'),NULL) FROM xyz;
也就是说,如果您的变量mydate
不是日期值,那么您帖子中的查询无论如何都应该返回(NULL)
。
答案 2 :(得分:0)
case
when date_format(mydate, '%d/%m/%Y') = 00/00/0000 then null
else ///
end as mydate,
答案 3 :(得分:0)
select case when isnull(mydate) then null else date_format(mydate, '%d/%m/%Y') end as mydate from xyz;