MySQL:使用CAST的三元IF(expr,if,else)

时间:2015-06-01 06:15:57

标签: mysql

为什么

SELECT IF(mytimestamp IS NULL, NULL, mytimestamp) FROM fixed_date

返回NULL(如预期的那样), 但

SELECT IF(mytimestamp IS NULL, NULL, CAST(mytimestamp AS char)) FROM fixed_date

返回'0000-00-00 00:00:00'?

我需要让后者返回NULL,这就是我要问的原因。那我该怎么做呢?

编辑:mytimestamp是一个TIMESTAMP。如果mytimestamp = NULL,我希望两个语句都返回null。在我的情况下,时间戳必须转换为CHAR,因为我的前端需要这样(实际上它有点复杂)。

解决方案:我已将'mytimestamp'设置为NOT NULLable(并将DEFAULTint设置为'0000-00-00 ...'。将其设置为NULLable,它按预期工作(返回NULL)。对不起,我的错。

谢谢, 哈德

0 个答案:

没有答案