我有以下语句,它返回'label'的空值:
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_from
和date_to
列都是DATE类型,第二列可能包含默认值0000-00-00
。
知道可能导致它的原因吗?
答案 0 :(得分:2)
DATE_FORMAT(cast('0000-00-00' as date), '%D %M %Y')
returns NULL,因此整个CONCAT
也将变为空。
也许您还应该将date_to
与IF
条件中的值'0000-00-00'进行比较?