动态修改SQL结果?

Raf*_*ari 3 .net c# mysql sql

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

结果是: 3

如何将结果返回为:3 Days而不是3

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

 string result = getSqlresult();
 string result += " Days";
Run Code Online (Sandbox Code Playgroud)

但是我希望直接3 Days从MySQL数据库中获得结果.

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

Anyhelp将受到高度赞赏

Joh*_*Woo 6

您可以将字符串连接Days到的结果DATEDIFF使用CONCAT.

SELECT CONCAT(DATEDIFF(deadline,CURDATE()), ' Days') 
FROM tasks 
WHERE 1
Run Code Online (Sandbox Code Playgroud)

如果您使用的是旧版本MySQL,请将其转换为字符串,这样您就不会得到bolb结果.

SELECT CONCAT(CAST(DATEDIFF(deadline,CURDATE()) AS CHAR(5)), ' Days') 
FROM tasks 
WHERE 1
Run Code Online (Sandbox Code Playgroud)

更新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
Run Code Online (Sandbox Code Playgroud)