为什么COALESCE(date1,date2)
返回Blob
(二进制)? 这两列的类型为DATETIME
。
下面是完整的SQL查询:
SELECT COALESCE( last_modified, date_purchased )As LastModifiedOrPurchased
FROM Orders
ORDER BY COALESCE( last_modified, date_purchased )DESC
LIMIT 1;
我通常使用SQL-Server作为RDBMS但需要写同步工具。 现在,我想选择两个日期之一。 如果last_modified
是空date_purchased
应返回。
但是,即使有多个记录,其中两个日期不为空,该查询返回只是Blob
。 如何得到正确的最后日期?
编辑 :在SQL-拨弄它不与MySQL 61年5月1日(我是5.0.51)可再现的。
这可能是已被修正了一个错误: 错误-35662
[2008 22时44年03月28]帕特里克克鲁斯
描述:
COALESCE(date, date)
返回上5.0.51a VARBINARY 适用于Windows XP 32位(只测试了这个味道)
COALESCE(date,date)
在Mac OS返回日期
...
...
...
[2008年03月31十七时41]奥马尔BarNir
该错误是固定在5.0.52和5.0.56测试时,没有观察到 - 关闭
我仍然不知道为什么会发生在MySQL工作台(和MS Visual Studio中)。 但我已经找到了解决办法。 我只是把结果以DATETIME
,它按预期工作:
SELECT CAST(COALESCE( last_modified, date_purchased )AS DATETIME)As LastModifiedOrPurchased
FROM Orders
ORDER BY COALESCE( last_modified, date_purchased )DESC
LIMIT 1;
编辑:杰克曾这样评价, IFNULL
作品也:
SELECT IFNULL( last_modified, date_purchased )As LastModifiedOrPurchased
FROM Orders
ORDER BY IFNULL( last_modified, date_purchased )DESC
LIMIT 1;