动态修改SQL结果?

时间:2013-02-19 13:05:53

标签: c# mysql .net sql

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

结果是:3

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

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

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

但我希望从MySQL数据库直接得到3 Days的结果。

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

Anyhelp将受到高度赞赏

1 个答案:

答案 0 :(得分:6)

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

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