当mysql中的输入为null时,为date_format返回null

时间:2011-04-07 05:41:44

标签: mysql null date-format

我正在做这样的事情:

SELECT date_format(mydate, '%d/%m/%Y') FROM xyz;

当mydate为NULL时,date_format返回00/00/0000。这是正确的,但是如何使它在输入为NULL时返回NULL?

4 个答案:

答案 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;