3

我有一个 SQL 查询:
SELECT DATEDIFF(deadline,CURDATE()) FROM tasks WHERE 1

结果是:3

我怎样才能将结果返回为:3 Days而不是3

我知道我可以从我的 C# 代码中手动附加字符串,例如:

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

但我想直接3 Days从 MySQL 数据库中获取结果。

原因: 我将信息直接绑定到 datagridview,因此,为了修改结果,我需要遍历所有行并更新它们。所以为了提高性能,我需要直接从数据库中获取结果,3 Days而不是3

Anyhelp将不胜感激

4

1 回答 1

6

您可以将字符串连接到usingDays的结果中。DATEDIFFCONCAT

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
于 2013-02-19T13:06:53.633 回答