[SQL] mysql을 선택 쿼리에서 두 날짜 사이의 날짜의 목록을 가져 오는 방법 [중복]
SQLmysql을 선택 쿼리에서 두 날짜 사이의 날짜의 목록을 가져 오는 방법 [중복]
나는 선택의 요청에 의한 두 날짜 사이의 날짜 거짓말의 목록을합니다. 예를 들면 :
내가 '2012-02-10'을 포기하고이 '2012-02-15'는 나는 결과가 필요합니다.
date
----------
2012-02-10
2012-02-11
2012-02-12
2012-02-13
2012-02-14
2012-02-15
내가 어떻게받을 수 있나요?
해결법
-
==============================
1.시험:
시험:
select * from (select adddate('1970-01-01',t4.i*10000 + t3.i*1000 + t2.i*100 + t1.i*10 + t0.i) selected_date from (select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t0, (select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t1, (select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t2, (select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t3, (select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t4) v where selected_date between '2012-02-10' and '2012-02-15'
용 - 날짜는 미래에 거의 300 년까지 다양합니다.
[UrvishAtSynapse에 의해 제안 된 편집 다음 수정.]
-
==============================
2.
set @i = -1; SELECT DATE(ADDDATE('2012-02-10', INTERVAL @i:=@i+1 DAY)) AS date FROM `table` HAVING @i < DATEDIFF('2012-02-15', '2012-02-10')
이 규정을 정확하게 설정하여 결과를 반환합니다. 이 쿼리는 당신이 DATEDIFF 및 ADDDATE에서 두 개의 서로 다른 날짜를 변경해야합니다.
-
==============================
3.허용 대답은 MySQL의 5.5에서 나를 위해 작동하지 않았다. 나는 나를 위해 일할 수있는 쿼리를 업데이트 :
허용 대답은 MySQL의 5.5에서 나를 위해 작동하지 않았다. 나는 나를 위해 일할 수있는 쿼리를 업데이트 :
select * from (select adddate('1970-01-01',t4*10000 + t3*1000 + t2*100 + t1*10 + t0) selected_date from (select 0 t0 union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t0, (select 0 t1 union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t1, (select 0 t2 union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t2, (select 0 t3 union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t3, (select 0 t4 union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t4) v where selected_date between '2012-02-10' and '2012-02-15'
-
==============================
4.당신은 당신이 이제까지 사용해야 할 수도 있습니다 모든 날짜를 포함하는 테이블을 생성 할 수 있습니다 :
당신은 당신이 이제까지 사용해야 할 수도 있습니다 모든 날짜를 포함하는 테이블을 생성 할 수 있습니다 :
date 2000-01-01 2000-01-02 2000-01-03 ...etc.. 2100-12-30 2100-12-31
그런 다음 다음과 같이 해당 테이블을 쿼리 :
SELECT date FROM dates WHERE date BETWEEN '2012-02-10' AND '2012-02-15'
-
==============================
5.이 게시물을 살펴보십시오 : 두 날짜 사이의 날짜의 목록을 가져옵니다
이 게시물을 살펴보십시오 : 두 날짜 사이의 날짜의 목록을 가져옵니다
론 야만인 한 것을 저장 프로 시저를 확인, 이것은 당신이 필요에 대응 보인다!
-
==============================
6.
SELECT * FROM tablexxx WHERE datecol BETWEEN '2012-02-10' AND '2012-02-15';
from https://stackoverflow.com/questions/9295616/how-to-get-list-of-dates-between-two-dates-in-mysql-select-query by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 두 SQL LEFT는 생산 잘못된 결과를 JOINS (0) | 2020.03.13 |
---|---|
[SQL] SQL Server의 조건부 WHERE 절 (0) | 2020.03.13 |
[SQL] MySQL은 삭제 후 자동 증가 (0) | 2020.03.13 |
[SQL] SQL 서버 프로세스 큐 레이스 조건 (0) | 2020.03.13 |
[SQL] SQL에서 월 이름 기능에 월 번호 변환 (0) | 2020.03.13 |