2013-02-19 84 views
3

我有一個SQL查詢:
SELECT DATEDIFF(deadline,CURDATE()) FROM tasks WHERE 1
即時修改SQL結果?

結果是:3

我怎樣才能返回結果爲:中3 Days代替3

我知道我可以手動添加的字符串從我的C#代碼是這樣的:

string result = getSqlresult(); 
string result += " Days"; 

但我想從MySQL數據庫直接得到結果爲3 Days

原因: 我直接綁定信息到datagridview,因此,爲了修改結果,我需要遍歷所有行並更新它們。因此,爲了提高性能,我需要從數據庫的33 Days代替

Anyhelp直接得到的結果將非常感激

回答

6

您可以將字符串Days到使用CONCAT的的DATEDIFF結果。

SELECT CONCAT(DATEDIFF(deadline,CURDATE()), ' Days') 
FROM tasks 
WHERE 1 

如果您正在使用舊版本的MySQL,將其轉換爲字符串,所以你不會得到bolb結果。

SELECT CONCAT(CAST(DATEDIFF(deadline,CURDATE()) AS CHAR(5)), ' Days') 
FROM tasks 
WHERE 1 

更新1

SELECT CASE 
      WHEN DATEDIFF(deadline,CURDATE()) >= 0 
      THEN CONCAT(DATEDIFF(deadline,CURDATE()), ' Days') 
      ELSE CONCAT('Expired since ', DATEDIFF(deadline,CURDATE()) * -1, ' Days') 
     END 
FROM tasks 
+0

我不相信它是那麼容易!感謝您的回答 – 2013-02-19 13:08:51

+0

不客氣':D' – 2013-02-19 13:12:15

+0

如果DATEDIFF()的值是負數,我該如何顯示'Date expired'是否存在一些問題? – 2013-02-19 13:15:59