假设我在DB中有一个“Datetime”列。它有一个像“2010-10-01 09:12:00”这样的数据。 除此之外,我想创建一个搜索页面:
<select id="month" name="month">
<option value="01">01</option>
<option value="02">02</option>
...
</select>
<input type="text" id="year" name="year">
如果我选择month=10
和year=2010
?
答案 0 :(得分:3)
SELECT *
FROM your_table
WHERE MONTH(your_date) = '10' AND YEAR(your_date) = '2010';
请注意,如果存在日期列,上述内容将无法使用日期列中的索引。要使用索引,您必须使用以下内容:
SELECT *
FROM your_table
WHERE your_date >= STR_TO_DATE(CONCAT('2010', '-', '10', '-01'), '%Y-%m-%d') AND
your_date < STR_TO_DATE(CONCAT('2010', '-', '10', '-01'), '%Y-%m-%d') + INTERVAL 1 MONTH;