2011-07-01 4 views
1

는 나는이mysql 테이블에서 당월의 기간을 선택하는 방법은 무엇입니까?

SELECT * FROM table WHERE YEAR(date) = YEAR(CURDATE()) AND MONTH(date) = MONTH(CURDATE()) 

을 시도하지만 작동하지 않는 테이블

에서 현재 달 행을 선택합니다.

+2

그것이 오류합니까 MySQL의에서이 달의 모든 레코드를 반환합니다? 행이 없습니까? –

+1

시험 데이터? 예상되는 결과? 실제 결과? –

답변

3

저는 MySQL 엔진에 대한 전문가는 아니지만 일반적으로 가지고있는 날짜 기능 대신 칼럼을 실제 날짜 값과 비교하는 것이 더 나을 것이라고 생각합니다. 날짜 함수에서 열을 래핑하면 열에 대한 색인이 쓸모 없게됩니다.

내가 함께 테스트하기 위해이 컴퓨터에 MySQL의 엔진을 가지고 있지만, 여기에 몇 가지 의사입니다하지 않습니다

여기
SELECT 
    <column list> 
FROM 
    My_Table 
WHERE 
    my_date >= <get 1st of current month>(CURDATE()) AND 
    my_date < <get 1st if next month>(CURDATE()) 
0

내가 시도하고 잘 작동 한 가장 간단한 방법, 당신은 행 곳을 선택합니다 date_field은 이번 달에 출시되었습니다.

SELECT * FROM your_table WHERE date_field > (NOW() - INTERVAL 1 MONTH); 

위는 DATE_FIELD가

관련 문제