我遇到了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格式,如果字段为空,则将其更改为01/01/1900。我究竟做错了什么?任何帮助,将不胜感激。如果有帮助的话,我正在使用5.2.47版本。
答案 0 :(得分:0)
ISNULL()
本身仅根据传递的参数计算为true或false;我相信您的语法错误是由于尝试将2个以逗号分隔的参数传递给该函数。我认为你真正想要的是更像if(isnull(support_due_date), '01/01/1900', date_format(support_due_date, '%m/%d/%Y')) as support_due_date2
的东西。
控制流语句(包括if()
)的文档是here。
也就是说,eggyal在他们对你的问题的评论中提出了一个关于魔术价值的好点 - imho有两个方法的时间和地点,只需要考虑。