2011-11-26 20 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'); 

このようにしてください。

私はid = "1"という質問IDを11月の月に解決しようとしています。

その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; 
関連する問題