爲什麼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