복붙노트

[SQL] mysql을 선택 쿼리에서 두 날짜 사이의 날짜의 목록을 가져 오는 방법 [중복]

SQL

mysql을 선택 쿼리에서 두 날짜 사이의 날짜의 목록을 가져 오는 방법 [중복]

나는 선택의 요청에 의한 두 날짜 사이의 날짜 거짓말의 목록을합니다. 예를 들면 :

내가 '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. ==============================

    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. ==============================

    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. ==============================

    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. ==============================

    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. ==============================

    5.이 게시물을 살펴보십시오 : 두 날짜 사이의 날짜의 목록을 가져옵니다

    이 게시물을 살펴보십시오 : 두 날짜 사이의 날짜의 목록을 가져옵니다

    론 야만인 한 것을 저장 프로 시저를 확인, 이것은 당신이 필요에 대응 보인다!

  6. ==============================

    6.

    SELECT * FROM tablexxx WHERE datecol BETWEEN '2012-02-10' AND '2012-02-15';
    
  7. 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