使用月/日/年格式在数据库中按名称搜索月份

时间:2012-04-10 22:52:25

标签: php mysql

我正在尝试使用php和Mysql开发一个搜索系统,但是你如何搜索:例如3月数据库中的日期格式为2012-03-26(年/月/日)的3月份

4 个答案:

答案 0 :(得分:4)

根据列数据的格式,这样的东西可以起作用:(许多解决方案之一)

SELECT [whatever] 
FROM [wherever] 
WHERE `date` < '2012-03-31 23:59:59' 
AND `date` > '2012-03-01 00:00:00'

答案 1 :(得分:2)

你可以像这样使用mysql MONTH()函数:

SELECT * FROM table WHERE MONTH(date_column) = 3
例如,

搜索March,或者还有像这样的MONTHNAME()函数:

SELECT * FROM table WHERE MONTHNAME(date_column) = 'march'

答案 2 :(得分:0)

尝试类似

的内容
SELECT   keyword ,  description , url FROM searchTable WHERE MONTH(addDate) = '3' 
SELECT   keyword ,  description , url FROM searchTable WHERE MONTHNAME(addDate) = 'March' 

答案 3 :(得分:0)

这是一个很粗略的例子,说明如何处理搜索表单中的日期 -

<form method="get" action="">
    Year:
    <select name="year">
        <option value="2012">2012</option>
        <option value="2011">2011</option>
        <option value="2010">2010</option>
    </select>
    Month:
    <select name="month">
        <option value="1">January</option>
        <option value="2">February</option>
        <option value="3">March</option>
    </select
    <input type="submit" name="search" value="search"/>
</form>
<?php

if (isset($_GET['search'])) {
    $year = intval($_GET['year']);
    $month = intval($_GET['month']);

    $sql = "SELECT *
            FROM `table`
            WHERE `date` BETWEEN '$year-$month-01' AND LAST_DAY('$year-$month-01')";
}