我在处理 MySQL 中的一行代码时遇到问题。我正在尝试将以下代码行写入我已经拥有并且有效的 select 语句中。我在处理该字段之前和之后的行前后都有一个逗号。 support_due_date 字段是一个日期字段。
ISNULL(DATE_FORMAT(support_due_date, '%m/%d/%Y'), '01/01/1900') as support_due_date2
我遇到语法错误。 support_due_date 字段有一些空值和一些日期值。我想将该字段格式化为 M/D/YYYY 格式,如果该字段为 Null,则将其更改为 01/01/1900。我究竟做错了什么?任何帮助,将不胜感激。如果有帮助,我正在使用 5.2.47 版。
最佳答案
ISNULL()
本身仅根据传递的参数评估为 true 或 false;我相信您的语法错误是由于试图将 2 个以逗号分隔的参数传递给该函数。我认为你真正要找的是更像 if(isnull(support_due_date), '01/01/1900', date_format(support_due_date, '%m/%d/%Y')) as支持截止日期 2
。
控制流语句(包括if()
)的文档是here .
也就是说,eggyal 在他们对您的问题的评论中很好地说明了魔术值 - 恕我直言,这两种方法都有时间和地点,只是需要考虑的事情。
关于用于转换和格式化日期的 MySQL 语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34318731/