2013-11-02 2 views
0

나는 특정 달과 해의 모든 경기를 가져 오는 함수를 작성 중입니다. 나는 달의 수와 그 기능에 대한 연도 값을 전달하고 결과를 얻기 위해 다음 쿼리를 사용해야합니다SQL 쿼리에서 날짜를 비교하는 방법?

SELECT tahminler.match_id, tahminler.tahmin_text,matches_of_comments.match_id 
FROM tahminler 
INNER JOIN matches_of_comments ON tahminler.match_id = matches_of_comments.match_id 
WHERE (
matches_of_comments.match_date = 'I DO NOT KNOW WHAT TO WRITE HERE' 
) 
AND tahminler.user_id =12 

문제가있는 matches_of_comments.match_date 유형은 VARCHAR이고 난 달 및 연도 등의 값을 전달 숫자가 같은 양식을 만들려면 11.2013 내가 어떻게 varchar 날짜에 전달이 양식을 비교할 수 있습니까 ?? 형식을 날짜로 변환 할 수 있습니까 ?? 그리고 만약 내가 그 일을 어떻게 비교할 수있는 날짜 (그냥 달과 년) ??

+0

사용 STR_TO_DATE – Mihai

+0

음, 날짜 형식 무엇 : 당신은 당신이 그것을 포맷 할 수 있습니다 필요한 모든 형식으로 비교하려면? 그리고 실제로 어쨌든 실제 날짜로 저장해야합니다 ... –

답변

0

은 VARCHAR

SELECT tahminler.match_id, tahminler.tahmin_text,matches_of_comments.match_id 
FROM tahminler 
INNER JOIN matches_of_comments ON tahminler.match_id = matches_of_comments.match_id 
WHERE (

MONTH(STR_TO_DATE(matches_of_comments.match_date , '%m/%d/%Y'))= '07'//month variable 
AND YEAR(STR_TO_DATE(matches_of_comments.match_date , '%m/%d/%Y'))= '2013'//year variable 
) 
AND tahminler.user_id =12 

STR_TO_DATE(str,format)

MONTH

YEAR

0
STR_TO_DATE('11.2013', '%m.%Y') 
나쁜 practiceto 저장 날짜입니다주의, 월, 년을 먼저 날짜를 비교하기 위해이 하나의 변환을 시도

은 문자열을 datetime 데이터 형식으로 변환합니다.

DATE_FORMAT(STR_TO_DATE('11.2013', '%m.%Y'), '%Y-%m-%d') 
관련 문제