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

标签 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 格式,如果该字段为 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/

相关文章:

java - org.hibernate.AnnotationException : Unknown Id. 生成器:GenreIdGenerator

mysql - 引用两个sql表的麻烦

MYSQL优化查询

php - 使用带有下拉选项的 php 更新 mysql 数据

mysql - MacOS:无法运行 MySQL Workbench

javascript - 如何在刷新时显示来自 PHP 表单的随机文本和图像?

c# - 仅当值已更改时才将值存储到数据库

php - MySQL "Or"条件

php - MYSQL 计算行数而不是显示结果

MySQL 更新 IF (ROW_COUNT() = 0)