반응형
가장 가까운 날짜를 표시하는 SQL 쿼리?
날짜 면에서 가장 가까운 3개의 이벤트를 반환하는 MySQL 쿼리를 작성하는 방법을 찾고 있습니다.
내 테이블은 다음과 같습니다.
EVENT_ID EVENT_NAME EVENT_START_DATE(DATETIME)
1 test 2011-06-01 23:00:00
2 test2 2011-06-03 23:00:00
3 test3 2011-07-01 23:00:00
4 test4 2011-08-09 23:00:00
5 test5 2011-06-02 23:00:00
6 test6 2011-04-20 23:00:00
따라서 현재 날짜와 비교하여 발생 가능성이 가장 높기 때문에 쿼리 결과는 ID의 1,2,5에 대한 것이어야 합니다.
편집: 쿼리는 이후 이벤트만 찾아야 합니다.
SELECT event_id
FROM Table
ORDER BY ABS( DATEDIFF( EVENT_START_DATE, NOW() ) )
LIMIT 3
그ABS()
즉, 1일 전의 이벤트가 1일 후의 이벤트만큼 가깝다는 의미입니다.아직 발생하지 않은 이벤트만 원하는 경우
SELECT event_id
FROM Table
WHERE EVENT_START_DATE > NOW()
ORDER BY EVENT_START_DATE
LIMIT 3
SELECT *
FROM table
WHERE EVENT_START_DATE >= NOW()
ORDER BY EVENT_START_DATE
LIMIT 3
승인된 응답의 쿼리는 실제로 이전에 선택한 값을 정렬할 뿐 선택하기 전에 필터링하지는 않습니다.하지만 이 질문은 제게 도움이 됩니다.
SELECT event_id, event_date
FROM events
WHERE ABS(TIMESTAMPDIFF(DAY, event_date, $some_date)) < 10
ORDER BY event_date
설명: 숫자 10은 일 범위(이후 및 이전 모두)입니다.없이.ABS()
이전 또는 미래의 이벤트만 선택할 수 있지만, 가장 가까운 이벤트가 필요했습니다.
이것이 당신이 찾고 있는 것이라고 생각합니다.다른 모든 사람들이 응답하는 것과 비슷합니다.
SELECT EVENT_ID FROM TABLE WHERE EVENT_START_DATE > NOW() ORDER BY ABS(DATEDIFF(EVENT_START_DATE, NOW())) ASC LIMIT 3
SELECT event_id FROM Table ORDER BY EVENT_START_DATE LIMIT 3
언급URL : https://stackoverflow.com/questions/6186962/sql-query-to-show-nearest-date
반응형
'itsource' 카테고리의 다른 글
명령줄을 사용하여 지정된 날짜 이후에 수정된 Windows에서 파일 찾기 (0) | 2023.08.25 |
---|---|
저장 프로시저에서 출력 파라미터 크기를 정의하려면 어떻게 해야 합니까? (0) | 2023.08.20 |
herku: src refspec 마스터가 일치하지 않습니다. (0) | 2023.08.20 |
Angular 2에서 IE11 캐싱 GET 호출 방지 (0) | 2023.08.20 |
base_url() 함수가 코드 점화기에서 작동하지 않습니다. (0) | 2023.08.20 |