【问题标题】:Return null for date_format when input is null in mysql当 mysql 中的输入为 null 时,为 date_format 返回 null
【发布时间】:2023-03-17 04:16:01
【问题描述】:

我正在做这样的事情:

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

当 mydate 为 NULL 时,date_format 返回 00/00/0000。这是正确的,但我怎样才能使它在输入为 NULL 时返回 NULL?

【问题讨论】:

    标签: mysql null date-format


    【解决方案1】:
    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

    【讨论】:

      【解决方案2】:

      您可以将其包装成IF-Clause,如下所示:

      SELECT IF(mydate,DATE_FORMAT(mydate, '%d/%m/%Y'),NULL) FROM xyz;
      

      也就是说,如果您的变量 mydate 不是日期值,那么您帖子中的查询无论如何都应该返回 (NULL)

      【讨论】:

        【解决方案3】:
        select case when isnull(mydate) then null else date_format(mydate, '%d/%m/%Y') end as mydate from xyz;
        

        【讨论】:

          【解决方案4】:
          case 
              when date_format(mydate, '%d/%m/%Y') = 00/00/0000 then null
              else ///
          end as mydate,
          

          【讨论】:

            猜你喜欢
            • 2023-03-08
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2018-08-31
            • 1970-01-01
            • 2016-05-16
            相关资源
            最近更新 更多