2011-11-26 3 views
2

데이터베이스 테이블이 있습니다데이터베이스 테이블에서 특정 날짜 가져 오기

내 코드는 사용자가 질문을 해결할 때마다 여기에 행을 삽입합니다.

CREATE TABLE `u_s_q` (
    `ID` int(8) NOT NULL auto_increment, 
    `userid` int(6) NOT NULL, 
    `questionid` int(6) NOT NULL, 
    `time` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, 
    PRIMARY KEY (`ID`) 
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ; 

-- 
-- Dumping data for table `u_s_q` 
-- 

INSERT INTO `u_s_q` VALUES (1, 1, 2, '2011-11-26 14:02:14'); 
INSERT INTO `u_s_q` VALUES (2, 1, 5, '2011-11-26 14:24:32'); 

이와 유사한.

11 월 11 일에 해결 된 id = "1"인 사용자의 질문 ID를 확인하려고합니다.

나는 그 SQL 문 난 그 쓰기 어떻게

을 작성하는 방법을 몰라?

답변

1

사용 MONTH(time)는 11 월 번호, 쿼리를 반환 (11 월)

SELECT questionid FROM u_s_q 
WHERE 
    userid = 1 
    AND MONTH(`time`) = 11 

또는 실제 단어 "11 월"얻을 MONTHNAME()를 사용하거나 무엇이든 그것은 당신의 로케일에서 호출됩니다

SELECT questionid FROM u_s_q 
WHERE 
    userid = 1 
    AND MONTHNAME(`time`) = 'November' 
+0

덕분에 많이 나는거야 stackoverflow 날 수 있습니다 때 대답을 확인하십시오 :) – user1056307

+0

'time' 열의 형식은'timestamp'이며 MONTH() 함수가이 유형을 처리 할 수 ​​있습니까? – sll

+0

@Sil 예, DATETIME 및 TIMESTAMP는 같은 형식의 yyyy-mm-dd hh : ii : ss로 저장되며 모두 MONTH()로 올바르게 작동합니다. –

0

달 기능을 사용해보십시오 :

SELECT questionid 
FROM u_s_q 
WHERE userid = 1 AND month(time) = 11; 
관련 문제