从datetime列中获取数据

时间:2010-10-06 06:49:45

标签: php mysql datetime select

假设我在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=10year=2010

,如何获取数据?

1 个答案:

答案 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;