1

我有以下语句,它返回“标签”的空值:

SELECT *,
IF (
    `date_to` IS NULL,
    CONCAT(DATE_FORMAT(`date_from`, '%D %M %Y'), ' ', `location`),
    CONCAT(DATE_FORMAT(`date_from`, '%D %M %Y'), ' - ', DATE_FORMAT(`date_to`, '%D %M %Y'), ' ', `location`)
) AS `label`
FROM `courses`
ORDER BY `date_from` ASC

和列都是 DATE 类型,第二个可能包含默认date_from值.date_to0000-00-00

知道可能是什么原因造成的吗?

4

1 回答 1

2

DATE_FORMAT(cast('0000-00-00' as date), '%D %M %Y')返回 NULL,因此整个CONCAT也将变为 null。

也许您还应该与条件date_to中的值“0000-00-00”进行比较IF

于 2013-09-10T15:18:49.853 回答