转换和格式化日期的MySQL语法错误

时间:2015-12-16 17:45:55

标签: mysql

我遇到了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版本。

1 个答案:

答案 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有两个方法的时间和地点,只需要考虑。