如何使用存储过程从2014年4月1日至当前日期的mysql数据库中获取数据

如何使用存储过程从2014年4月1日至当前日期的mysql数据库中获取数据,mysql,sql,database,stored-procedures,Mysql,Sql,Database,Stored Procedures,数据库表包含fiels as invoice time as type datetime,我必须获取从给定日期到当前日期的数据。我创建了如下程序,但它不起作用。。我指定的开始日期为2014年4月1日,但此日期之前的日期也会被带入表中。我添加了在指定日期之间选择数据的条件,但它不起作用。有人帮我解决这个问题 CREATE DEFINER=`root`@`localhost` PROCEDURE `list_invoice`(invoice_number varchar(30),branch_cod

数据库表包含fiels as invoice time as type datetime,我必须获取从给定日期到当前日期的数据。我创建了如下程序,但它不起作用。。我指定的开始日期为2014年4月1日,但此日期之前的日期也会被带入表中。我添加了在指定日期之间选择数据的条件,但它不起作用。有人帮我解决这个问题

CREATE DEFINER=`root`@`localhost` PROCEDURE `list_invoice`(invoice_number varchar(30),branch_code varchar(15))

begin    

select `invoice number`,date_format(`invoice date`,'%d-%m-%Y') `invoice date`,`customer name`,sum(b.amount) `total amount`,sum(round(b.amount * a.`tax percentage`,2)) 
`tax amount` from invoices a
inner join `challan master` b on b.`challan number` = a.`challan number`
inner join `customer master` c on c.`customer id` = b.`customer id`
where (((((locate(invoice_number,`invoice number`) > 0 or locate(invoice_number,`customer name`) > 0) and invoice_number <> '')
               or
      (invoice_number = ''))and(`invoice number` like concat('%',branch_code,'%'))) AND (date_format(`invoice date`,'%d-%m-%Y') BETWEEN '01-04-2014' and date_format(CURDATE(),'%d-%m-%Y')))
group by `invoice number`,`customer name`
order by date_format(`invoice date`,'%Y-%m-%d')desc, 1 desc;

end

附加到where子句。还要检查“发票日期”中为什么有空格

    AND (date_format(invoice_date,'%d-%m-%Y')>='01-04-2014'
and date_format(invoice_date,'%d-%m-%Y')<=date_format(NOW(),'%d-%m-%Y'))

将其添加到where子句中的查询:

where ((((locate(invoice_number,`invoice number`) > 0 or locate(invoice_number,`customer name`) > 0) and invoice_number <> '')
               or
      (invoice_number = ''))and(`invoice number` like concat('%',branch_code,'%')) and `invoice date` between date_format(str_to_date('01-04-2014','%d-%m-%Y'),'%Y-%m-%d') and date_format(CURDATE(),'%Y-%m-%d'))
group by `invoice number`,`customer name`
order by date_format(`invoice date`,'%Y-%m-%d')desc, 1 desc;

你在哪里检查日期clause@www.sblog.in是的,我在上面我看不到的地方登记query@www.sblog.in:我错过了,我已经更新了上面的代码