복붙노트

[SQL] MySQL을 사용 소식 테이블에서 지난 6 개월을 선택하는 방법

SQL

MySQL을 사용 소식 테이블에서 지난 6 개월을 선택하는 방법

나는 테이블에 항목의 지난 6 개월을 선택하려고, 나는 열이 날짜를 전화를이 날짜 시간 MySQL의 형식으로되어 있습니다.

내가 사용해야하는 방법 - 나는 간격과 다른 방법을 사용하여 여러 가지 방법을 보았는가? 감사

해결법

  1. ==============================

    1.사용 DATE_SUB

    사용 DATE_SUB

     .... where yourdate_column > DATE_SUB(now(), INTERVAL 6 MONTH)
    
  2. ==============================

    2.이 시도:

    이 시도:

    select *
      from table 
     where your_dt_field >= date_sub(now(), interval 6 month);
    

    쿼리 읽 항목 날짜에 해당하는 필드 6 개월보다 새로운 곳 테이블에 나에게 모든 항목을 제공합니다.

  3. ==============================

    3.내가 user319198 대답은 지난 6 개월 (의 합)을 표시 @ 노력 판매, 그것은 일을하지만 가장 오래된 달에 한 문제에 직면, 나는 전체 달의 판매 금액을하지 않습니다. 결과는 그 달에 해당하는 현재의 일에서 시작됩니다.

    내가 user319198 대답은 지난 6 개월 (의 합)을 표시 @ 노력 판매, 그것은 일을하지만 가장 오래된 달에 한 문제에 직면, 나는 전체 달의 판매 금액을하지 않습니다. 결과는 그 달에 해당하는 현재의 일에서 시작됩니다.

    그냥 나는 어떤 사람이 관심이 있다면 내 솔루션을 공유 할 : -

    yourdate_column > DATE_SUB(now(), INTERVAL 7 MONTH)
    limit 6
    

    누군가가 내 경우 J.에 대한 더 나은 솔루션이있는 경우 또한 그것은 좋은 것입니다

  4. ==============================

    4.나에게, 내가 MariaDB로 사용하고 같은 솔루션과 같은이 모습은 WHERE 절에서 살펴 :

    나에게, 내가 MariaDB로 사용하고 같은 솔루션과 같은이 모습은 WHERE 절에서 살펴 :

    SELECT MONTH(yourTimestampOrDateColumn) AS MONTH, USER, ActionID, COUNT(*) AS TOTAL_ACTIONS, ROUND(SUM(totalpoints)) AS TOTAL_PTS
    FROM MyTable
    WHERE MONTH(yourTimestampOrDateColumn) BETWEEN MONTH(CURDATE() - INTERVAL 6 MONTH) AND MONTH(CURDATE())
    GROUP BY MONTH;
    

    화상에 우리는 사용자 (따라서 단지 4 개월 대신 6을 도시)는 DB에 기록 된 실제 데이터를 가지고 단지 달 참조.

    이 달 (10월) 10 그래서 6 개월 전 따라서 쿼리 (4 ~ 10) 그 간격을 찾을 것이다, 4 월 (4 월)이었다.

  5. ==============================

    5.또한 TIMESTAMPDIFF을 사용할 수 있습니다

    또한 TIMESTAMPDIFF을 사용할 수 있습니다

        TIMESTAMPDIFF(MONTH, your_date_column, now()) <= 6 )
    
  6. ==============================

    6.당신은 CURDATE ()에서 6개월의 간격을 뺀 마지막 여섯 달의 데이터를 얻을 수있는 것은 (CURDATE () 오늘의 날짜를 반환 MySQL의 기능이다).

    당신은 CURDATE ()에서 6개월의 간격을 뺀 마지막 여섯 달의 데이터를 얻을 수있는 것은 (CURDATE () 오늘의 날짜를 반환 MySQL의 기능이다).

    SELECT * FROM table 
             WHERE your_date_field >= CURDATE() - INTERVAL 6 MONTH;
    

    또는 당신은 아래로 MySQL의 연산자 BETWEEN 사용할 수 있습니다 :

    SELECT * FROM table 
             WHERE your_date_field BETWEEN CURDATE() - INTERVAL 6 MONTH AND CURDATE();
    
  7. from https://stackoverflow.com/questions/8941377/how-to-select-last-6-months-from-news-table-using-mysql by cc-by-sa and MIT license