sdate
(ShowDate) 및 hdate
(HideDate)이있는 storeID에 할당 된 일정에 특정 이벤트가 있습니다. 이제이 storeID가있는 모든 새로운 이벤트에 대해 기존 기간과 겹치는 부분이 없는지 확인해야합니다. 말이 돼? 어떻게해야합니까? 나는 물건에 대해 읽었지만 "겹치지 않는 경우에만 삽입하는"방법을 알아낼 수 없었습니다. 는 범위의 시작과 끝 값으로 S1..E1 S2..E2과 두 범위를 가지고 있다면, 만약 중첩이 일반적중복되는 날짜 범위 생성 금지
답변
, 같은 경우
- S1 < E2 및
- S2 < E1은
이 좋은 (그리고 안심)는 대칭이다. '작게'운영이 '작거나 같아야'하는지 여부를 신중하게 결정해야합니다. 둘 다 데이터를 저장하는 방법 (열린 대 닫힌 대 또는 반 개방 또는 개방 폐쇄 및 폐쇄 개방 범위 등)에 따라 둘 다 이해할 수 있습니다. 'Determine whether two date ranges overlap'에 대한 가능성이 diagram 인 것을 볼 수 있습니다.
컨텍스트에서 'ShowDate'는 시작 날짜에 해당하고 'HideDate'는 종료 날짜에 해당합니다.
마치 'conditional insert'을 수행하려는 것처럼 들립니다. 이 경우, 당신을 StoreID 1001이라고 가정하고 showdate와는 2012-03-21하고 HideDate은 다음 작성할 수 있습니다, 2012-03-28입니다 : 선택 목록에서
INSERT INTO Calendar(StoreID, ShowDate, HideDate, ...)
SELECT 1001, '2012-03-21', '2012-03-28', ...
FROM Dual
WHERE NOT EXISTS(SELECT * FROM Calendar C2
WHERE C2.StoreID = 1001
AND C2.ShowDate < '2012-03-28'
AND '2012-03-21' < C2.HideDate
);
값은 그입니다 Calendar 테이블에 추가하려고합니다. 하위 선택은 새 값에 대한 데이터와 함께 0 행 (중복이 있으므로) 또는 1 행 (중복이 없기 때문에)을 얻는다는 것을 의미합니다.
튜플'(1001, '2012-03-21', '2012-03-28', ...) '대신'SELECT ... FROM DUAL'이 필요한 이유는 무엇입니까? – Air
SQL의 방언 (또는 DBMS가 준수하는 표준). 일부 DBMS는 표기법을 지원하지 않습니다. –
- 1. SQL Server에서 중복되는 날짜 범위 결합
- 2. JodaTime에서 날짜 범위 생성
- 3. SQL에서 중복되는 날짜 찾기
- 4. 다른 날짜 범위 내의 날짜 범위 합계
- 5. 파이썬에서 파일 생성 금지.
- 6. 코어 데이터 - 중복되는 날짜 범위가있는 레코드 찾기
- 7. 그 날짜 범위 지정된 날짜
- 8. LINQ에 주어진 날짜 범위
- 9. 날짜 범위 (일) .... C#
- 10. 개월로 분할 날짜 범위
- 11. PostgreSQL의 날짜 범위
- 12. Devexpress 날짜 범위 편집기
- 13. 날짜 범위 공식
- 14. MongoDB의 날짜 범위 쿼리
- 15. 날짜 범위 SQL 쿼리
- 16. SQL의 정확한 날짜 범위
- 17. 몬드리안의 날짜 범위
- 18. CakePHP : 날짜 범위
- 19. SQL의 날짜 범위
- 20. 날짜 범위 쿼리 MySQL
- 21. 범위 내의 날짜 확인
- 22. JavaScript로 날짜 범위 제한
- 23. 누락 날짜 범위
- 24. Sharepoint 날짜 범위 공식
- 25. 보고서에 날짜 범위 인쇄
- 26. 날짜 범위 제출 - mySQL
- 27. SQL 날짜 범위 쿼리
- 28. SQL의 날짜 범위 교차점
- 29. MySQL 쿼리 날짜 범위
- 30. 는 PostgreSQL의에서 날짜 범위
StackOverflow에 오신 것을 환영합니다. 무슨 "달력"? 어떤 언어? 어떤 데이터베이스? 지금까지 뭐 해봤 어? 여기에 우리가 당신을 도우려는 데 사용할 수있는 어떠한 정보도 제공하지 않습니다. 질문을 수정하고 자세한 내용을 입력하십시오. 네가 그렇게하지 않으면 나는 두려워한다.이 질문은 "진짜 질문이 아니다"로 끝날 것이다. –
죄송합니다, PHP 및 MySql - 나는 둘 사이에 놀아 보았습니다. 그러나 실제로 갈 수 없었습니다. 또한 PHP에서 사용할 수 있습니까? – cerr