我有一个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将受到高度赞赏
答案 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