datediff()
以下を完全に削除することをお勧めします。
Select (CASE when targetcompletedate <= NOW() the 'Overdue' else 'Days Left' end)
物事を数字で示したい場合は、datediff()
. わかりやすくするために、明示的に文字列に変換します。
select (case when targetcompletedate <= NOW() then 'Overdue'
else cast(DATEDIFF(targetcompletedate, NOW()) as varchar(255))
end)
多分:
select (case when targetcompletedate <= NOW() then 'Overdue'
else concat(DATEDIFF(targetcompletedate, NOW()), ' days left')
end)
哲学は次のとおりです。必要なものを表現するためのより簡単で明確な方法がある場合は、関数を使用しないでください。
ただし、各グループの数を数えたいかどうかは疑問です。
select sum(case when targetcompletedate <= NOW() then 1 else 0 end) as NumOverdue,
sum(case when targetcompletedate <= NOW() then 0 else 1 end) as NumWithDaysLeft