Mysql SQL where筛选器,其中包含两个日期字段和todays日期
我试图在执行SQL语句时计算行数 在表名项目范围中,我将7个任务(行)分配给用户id=1 我希望将任务延迟的总次数从完成日期列中减去今天的日期。 跳过任何等于100的任务(行)进度字段,这是已完成的任务 我是通过以下方式实现的:Mysql SQL where筛选器,其中包含两个日期字段和todays日期,mysql,date,Mysql,Date,我试图在执行SQL语句时计算行数 在表名项目范围中,我将7个任务(行)分配给用户id=1 我希望将任务延迟的总次数从完成日期列中减去今天的日期。 跳过任何等于100的任务(行)进度字段,这是已完成的任务 我是通过以下方式实现的: “从项目范围中选择*,其中assing\u to='1'和进度
“从项目范围中选择*,其中assing\u to='1'和进度<100,完成日期<'今日$”
但如果/何时
请看第一行,该任务有一个2_完成日期(第2个完成日期),如果用户无法完成任务,则会给出该日期。项目负责人将给出另一个完成任务的日期
如果2_completion_date字段大于今天的日期,则该行不应计数
我的问题是?
如何将2个完成日期包含在一起过滤完成日期和2个完成日期的SQL中
到目前为止,我尝试了这些:
从项目范围中选择*,其中assing_to='uid'和progress<100和(完成日期<'today'或2完成日期<'today')
但是输出是0行。可以看看COALESCE()
和COALESCE(2_completion_date,completion_date)<'$today'
COALESCE在一系列值中取第一个非空值。通过将2_completion_date放在第一位,如果为空,则将使用completion_date,否则使用2_completion_date进行评估合并(2_completion_date,completion_date)<'$today'有效,谢谢大家!!
SELECT * FROM project_scope WHERE assing_to = '$uid' AND progress < 100 AND (completion_date < '$today' OR 2_completion_date < '$today')