【发布时间】:2018-01-26 19:59:02
【问题描述】:
在执行 JOIN 查询时,MySQL 为 DATE() 类型字段输出 0000-00-00,尽管在执行简单 SELECT(2017-03-02 等)时值不为空。
SELECT * FROM t1
JOIN t1_t2 ON t1_t2.t1_id = t1.t1_id
JOIN t2 ON t1_t2.t2_id = t2.t2_id
WHERE t1_id = 52
ORDER BY t2.type, t1.my_date_field;
奇怪的是,当我将 DATE_FORMAT(my_date_field) 添加到查询中时,它可以工作:
SELECT *, DATE_FORMAT(`my_date_field`, "%Y-%m-%d")
(...)
我做了一个 SQLFiddle http://sqlfiddle.com/#!9/23a965/8 但无法复制问题
编辑问题来自 ORDER BY 子句,删除 'ORDER BY release_date' “解决”了问题 - 但仍然无法在小提琴上复制。
【问题讨论】:
-
去掉记号
-
我强烈建议创建一个sqlfiddle。它将帮助我们诊断您的问题。
-
@Ctznkane525 版本中没有打勾不工作,到底应该怎么改结果?
-
SQL fiddle 会有所帮助
-
@Ctznkane525 sqlfiddle.com/#!9/23a965/8 查看编辑后的帖子了解更多信息
标签: mysql date join null format