我有这个代码来选择不同的值并给我数值。
我想只选择本月的价值。
示例:仅在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" ";echo"(";echo $res['num'];echo")";echo"<br/>";
}
答案 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