1
A
답변
1
이 ... 나는이 SQL 당신을 위해 그것을 할 것입니다 단지 SQL의 문제를 생각한다 :
registrations = Registration.find_by_sql(sql)
는 SQL이 동일 장소 :
이 레일에서select r1.*
from registrations r1, registrations r2
where
r1.start_date < r2.start_date
and r1.end_date > r2.start_date
이 같은 할 거라고 위의 SQL 코드. 당신은 예를 들어, 중복, 같은 "감동"날짜하다고 판단하는 경우 <=
여기 http://c2.com/cgi/wiki?TestIfDateRangesOverlap
WHERE A.start < B.end
AND B.start < A.end
변경 <
에게 설명
2
는 중복 시험 정답은, Other.End
대 회 This.Start
입니다
Jan1 - Jan13
Jan13 - Jan15
반환 <=
겹치면 아니라 오버랩 <
0
위해이 하나 완전히 다른에 포함되지 않은 경우에도, 두 개의 범위 사이 어떤 오버랩이있는 범위 (1)를 찾는다.
select r1.*
from registrations r1
JOIN registrations r2 ON r1.start_date
between r2.start_date
AND r2.end_date
0
표준 SQL에는 OVERLAPS 연산자가 있습니다.
CREATE TABLE over_laps
(
start_date date NOT NULL,
end_date date NOT NULL,
CONSTRAINT over_laps_pkey PRIMARY KEY (start_date, end_date),
CONSTRAINT over_laps_check CHECK (start_date < end_date)
)
insert into over_laps values
('2011-01-10', '2011-01-15'),
('2011-01-08', '2011-01-09'),
('2011-01-09', '2011-01-10'),
('2011-01-09', '2011-01-11'),
('2011-01-10', '2011-01-12'),
('2011-01-11', '2011-01-13'),
('2011-01-13', '2011-01-15'),
('2011-01-14', '2011-01-16'),
('2011-01-15', '2011-01-17'),
('2011-01-17', '2011-01-19');
select t1.start_date start_1, t1.end_date end_1,
t2.start_date start_2, t2.end_date end_2
from over_laps t1
inner join over_laps t2
on ((t1.start_date, t1.end_date) overlaps (t2.start_date, t2.end_date))
-- Exclude rows that overlap themselves, a trivial case in a self-joined table.
where t1.start_date <> t2.start_date and
t1.end_date <> t2.end_date
관련 문제
- 1. SQL에서 초과 계정 찾기
- 2. T-SQL에서 일 찾기
- 3. Oracle SQL에서 날짜 계산
- 4. SQL Server에서 중복되는 날짜 범위 결합
- 5. LIMIT/OFFSET을 사용하여 SQL에서 페이징을하면 다른 페이지에 중복되는 경우가 있습니다.
- 6. DB2/ODBC의 SQL에서 날짜 계산
- 7. JQuery를 사용하여 날짜 찾기
- 8. 컬렉션에서 누락 날짜 찾기
- 9. 날짜 수집에서 평균 날짜 찾기 (루비)
- 10. 날짜 범위 사이의 특정 월의 날짜 찾기
- 11. 두 날짜 사이에 누락 날짜 찾기
- 12. MySQL - 월 목록과 일치하는 날짜 범위 찾기
- 13. SQL에서 테이블 간의 누락 된 번호 찾기
- 14. 문자열을 찾기 위해 SQL에서 함수를 생성해야합니다.
- 15. SQL에서 위도와 경도 찾기 및 주문
- 16. int 값을 사용하여 SQL에서 날짜/시간을 설정합니까?
- 17. 날짜 범위를 SQL에서 별도의 세그먼트로 분리
- 18. PHP5에서 로케일 날짜 표시 찾기
- 19. 복잡한 날짜 찾기 및 삽입
- 20. 날짜 찾기 휴지통 마지막 비었습니다
- 21. 가장 빠른 날짜 찾기 - PHP
- 22. 쿼리에서 중복되는 열 이름
- 23. 은 중복되는 PDO :: PARAM_INT입니까?
- 24. 중복되는 Windows 스와핑?
- 25. BST에서 중복되는 경우는 어떻게됩니까?
- 26. 요소가 IE에서 중복되는 문제
- 27. IE에서 중복되는 테이블 테두리
- 28. Android : 캘린더에서 중복되는 이벤트의 레이아웃
- 29. SQL 각 고객, SQL에 대한 다음 날짜 찾기?
- 30. 주어진 날짜 이후 첫 번째 월요일의 날짜 찾기
r2가 r1에 완전히 포함되어있을 때만 보이는 것처럼 보입니다. 나는 겹치는 부분을 찾아야한다고 생각합니다. –