COALESCE两个日期返回二进制?(COALESCE two dates returns bina

2019-07-04 17:20发布

为什么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)可再现的。

Answer 1:

这可能是已被修正了一个错误: 错误-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测试时,没有观察到 - 关闭



Answer 2:

我仍然不知道为什么会发生在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;


文章来源: COALESCE two dates returns binary?
标签: mysql sql mysql5