我正在尝试在查询中获取日期范围和事务类型。我在PHP中使用Mysql数据库。 最初,声明是
("select * from accounting WHERE date between '$startdate' AND
'$enddate'",$prop);
它工作得很漂亮,没有问题@ all。但我还需要它在数据库中选择一个名为事务类型的列。 以下是我修改它的方法:
("SELECT date, account, description, Income FROM accounting where
transactiontype = 'Income' and WHERE date between '$startdate' AND
'$enddate' order by date ASC",$prop);
我收到错误消息: 错误:SQL语法中有错误;查看与您的MySQL服务器版本对应的手册,以便在'2012年9月1日'和'2013/04/17'之间的日期之间使用正确的语法'ASC'在第1行的顺序 查询:选择日期,帐户,描述,收入来自会计,其中,transactiontype ='收入',以及'2012/09/01'和'2013/04/17'之间的日期,按日期ASC排序 非常感谢任何帮助。
答案 0 :(得分:2)
并且足够了,你不需要借调WHERE。
("SELECT `date`, account, description, Income
FROM accounting
WHERE transactiontype = 'Income'
AND `date` between '$startdate'
AND '$enddate' order by `date` ASC",$prop);
顺便说一下,尽量避免使用保留关键字作为表/列名称(如日期)。 你必须一直逃避它们(并且也会一直忘记它)。
答案 1 :(得分:0)
("SELECT date, account, description, Income FROM accounting where
transactiontype = 'Income' and "date" between '$startdate' AND
'$enddate' order by date ASC",$prop);
您可能还需要将日期括在语音标记或刻度(`)中,如图所示。
答案 2 :(得分:0)
请删除第二个where子句..
(SELECT date, account, description, Income FROM accounting where
transactiontype = 'Income' and (date between '$startdate' AND
'$enddate') order by date ASC",$prop )