작업의 시작 날짜와 종료 날짜가 게시 된 날짜와 시작 날짜가 설정되었지만 끝나는 모든 데이터를 반환하는 쿼리를 작성하려고합니다. 날짜가 0000-00-00
이면 종료일이 없으므로 데이터가 결과에 계속 표시됩니다. 또한 그 주에 현재 주일을 벗어난 결과가 표시되어야합니다 (예 : NOW()
). 따라서 게시 된 날짜의 주와 현재의 주를 비교하고 게시 된 날짜의 주간이 더 높은 경우 결과가 표시되어야합니다.연도와 날짜 사이의 데이터 표시
내 데이터베이스 구조는 다음과 같습니다
id cons_id day_name start_date end_date status_code
___________________________________________________________________________
1 105 Wednesday 2017-05-17 0000-00-00 0
2 106 Wednesday 2017-05-24 2018-06-20 0
3 107 Thursday 2017-05-25 2030-02-28 0
4 108 Friday 2017-05-19 2019-01-25 0
5 109 Wednesday 2018-01-03 2018-02-14 0
내 쿼리는 다음과 같습니다
SELECT i.cons_id AS 'cons_id',
i.type AS 'type',
i.day_name AS 'day_name',
i.day_num AS 'day_num',
i.start_date AS 'start_date',
i.end_date AS 'end_date',
i.created_at AS 'created_at',
i.updated_at AS 'updated_at'
FROM recurent_cons AS i
WHERE i.status_code = '0'
AND ('2017-05-26' BETWEEN i.start_date AND i.end_date)
AND i.end_date >= '2017-05-26'
OR i.end_date = '0000-00-00'
쿼리 상기도 옳지 않다 현재 주에 id
1 기록을 보여줍니다, 또한 연도를 2018
으로 변경하면 올해의 레코드가 표시되지 않습니다 2017
레코드의 종료 날짜는 2018
, 내가 볼 수 :
id cons_id day_name start_date end_date status_code
1 105 Wednesday 2017-05-17 0000-00-00 0
3 107 Thursday 2017-05-25 2030-02-28 0
5 109 Wednesday 2018-01-03 2018-02-14 0
현재 날짜를 제외하고 미래를 보여줍니다
그래서 결과는 다음과 같이 될 것입니다 날짜 + 무한대 하나 (0000-00-00
)
Pls는 예상 된 방법 제공을 출력은 단순히이 사실에 기초하여 당신이 무엇인지 이해하지 못하기 때문에 생겼을 것입니다. – Shadow
예상되는 결과를 보여줄 수 있습니까? – Alexander