从数据库中选择月份日期

时间:2016-06-22 10:27:39

标签: php mysql

我有这个代码来选择不同的值并给我数值。

我想只选择本月的价值。

示例:仅在06或05月份以相同的方式给出我06月的所有价值

Remarque:数据库中的日期类型是varchar而不是日期。

$sql=mysqli_query($conn,"select db_shopname, COUNT(db_shopname) as num FROM
(select tbl_order.db_shopname from tbl_order union all select tbl_item.db_shopname from tbl_item)t
GROUP BY db_shopname ")or die(mysqli_error($conn));

while($res=mysqli_fetch_array($sql)){       
    echo $res['db_shopname'];echo"&nbsp;";echo"(";echo $res['num'];echo")";echo"<br/>";
}

2 个答案:

答案 0 :(得分:0)

如果您想将日期varchar转换为搜索日期,可以使用以下示例

select date_format(str_to_date('31/12/2010', '%d/%m/%Y'), '%Y-%m-%d') - return 2010-12-31

如果你只想要一年

select date_format(str_to_date('31/12/2010', '%d/%m/%Y'), '%Y') - return 2010

如果你只想要一个月

select date_format(str_to_date('31/12/2010', '%d/%m/%Y'), '%m') - return 12

如果你只想要一天

select date_format(str_to_date('31/12/2010', '%d/%m/%Y'), '%d') - return 31

示例

select count(name) from test where MONTH(str_to_date(date, '%d/%m/%Y')) = 06 group by name

答案 1 :(得分:0)

要将月份从varchar字段中拉出来,请使用:

MONTH(STR_TO_DATE(db_date ,'%Y/%m%d'))=MONTH(NOW())

将此添加到where条件

编辑:

我不知道你的工作是什么,但尝试它。

    select db_shopname, COUNT(db_shopname) as num 
    FROM
    (select tbl_order.db_shopname 
    from 
    tbl_order 
    where MONTH(STR_TO_DATE(`db_date` ,'%Y/%m%d'))=MONTH(NOW())
    union 
    all 
    select tbl_item.db_shopname 
    from tbl_item
    where MONTH(STR_TO_DATE(`db_date` ,'%Y/%m%d'))=MONTH(NOW()))t
    GROUP BY db_shopname