我有一个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将受到高度赞赏
您可以将字符串连接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)