如何选择两个日期条件

时间:2015-04-19 05:05:04

标签: mysql sql

我有一个日期'$ user_input_date',我从用户那里收到它 我在select子句中的其他查询中有一个查询,我想在这个子查询中选择总时数,有两个条件,如bellow

$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"

我的目标是在日期间隔中按照我从用户收到的日期的总小时数,如果start_interval&gt; $ user_input_date然后我想选择 start_interval和end_interval 之间的间隔,否则选择< strong> start_interval和reverce_end_interval 在where子句中查询我的Candition in where子句是错误的因为我不知道请帮助我亲爱的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

1 个答案:

答案 0 :(得分:2)

需要使用括号来隔离日期条件。

之前

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)
相关问题