为什么COALESCE(date1,date2)
返回Blob
(二进制)?两列均为DATETIME
。COALESCE两个日期返回二进制?
下面是完整的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-Fiddle它不能用MySql 5.1.61(我在5.0.51)重现。
你在命令行上试过了吗?或者你用什么来激发查询?那些列的数据类型是什么? – fancyPants
@tombom:我已经从MySql workbench 5.2.34和Visual Studio中试过了。顺便说一句,我在Windows 2008. –
是的,我会想知道,如果它是可重现的。很多客户端在正确显示数据时遇到问题,或者认为他们会为用户提供一个帮助,即,我正在使用Toad,它不会正确显示“tinyint”(然后它只使用复选框),NULL值不会完全显示,所以你不能分辨它是NULL还是空字符串。尽管如此,我仍然可以推荐蟾蜍。问题是你的客户! – fancyPants