Mysql 如何选择两个日期条件

Mysql 如何选择两个日期条件,mysql,sql,Mysql,Sql,我有一个日期“$user\u input\u date”,我从用户和 我在select子句中的其他查询中有一个查询,我想在这个子查询中选择总小时数,并使用以下两个条件 $sql="SELECT teacher.teacher_id,name,lname,father_name,salary_per_hour,monthly_salary," . "(select ($user_month - month(salary_start_date)) from teacher w

我有一个日期“$user\u input\u date”,我从用户和 我在select子句中的其他查询中有一个查询,我想在这个子查询中选择总小时数,并使用以下两个条件

$sql="SELECT teacher.teacher_id,name,lname,father_name,salary_per_hour,monthly_salary,"
            . "(select ($user_month - month(salary_start_date)) from teacher where teacher_id=$id) as deff_month ,"
            . "(select ADDDATE(salary_start_date, interval deff_month month) from teacher where teacher_id=$id) as start_interval, "
            . "(select ADDDATE(start_interval, interval 1 month)) as end_interval ,"
            . " (select DATE_SUB(start_interval, interval 1 month)) as reverse_end_interval,"
            . "(**select sum(hours) from teacher_hours_late where date>= start_interval AND date<end_interval OR date>=start_interval AND date<reverse_end_interval and teacher_id=$id ) as total_late**"
            . " from teacher where teacher.branch_id=$branch_id and teacher.teacher_id=$id"

我的目标是通过从用户处收到的日期来获得日期间隔中的总小时数,如:如果开始时间间隔>$user\u输入时间,则我要选择开始时间间隔和结束时间间隔之间的时间间隔,否则在下面的where子句中选择开始时间间隔和回响时间间隔在where子句中查询我的CANDION错误,因为我不知道,请帮助我亲爱的选择sumhours from teacher\u hours\u late,其中date>=start\u interval和date=start\u interval以及date括号是隔离日期间条件所必需的

以前

之后


括号不是我的问题亲爱的WorkSmarter我不知道如何通过$user\u input date设置条件如果用户日期大于开始时间间隔,那么我想计算日期>开始时间间隔和日期=开始时间间隔和日期之间的小时数。如果不使用括号,日期条件将无法按预期运行。而不是比较两个日期条件,总共会评估3个条件,例如日期>=开始时间间隔和日期=开始时间间隔。您说得对,亲爱的,我在括号中有这个问题,我已经解决了,但我想使用$user\u input\u date检查$user\u input\u date是否大于开始时间间隔,然后我想计算日期>开始时间间隔和日期=开始时间间隔和日期之间的小时数
where date>= start_interval AND date<end_interval OR date>=start_interval AND date<reverse_end_interval
where (date>= start_interval AND date<end_interval) OR (date>=start_interval AND date<reverse_end_interval)