所以我正在从 PHP 执行此查询,这里是确切的查询字符串:
SELECT * FROM `pdem_timesheet`.`tblMasterTimesheets` WHERE
`pdem_timesheet`.`tblMasterTimesheets`.`username` = 'pdem' AND
`pdem_timesheet`.`tblMasterTimesheets`.`date` >= '2012-05-09' AND
`pdem_timesheet`.`tblMasterTimesheets`.`date` <= '2012-05-15' ORDER BY
`pdem_timesheet`.`tblMasterTimesheets`.`date` ASC
看起来它对我来说应该是正确的(或多或少地从我以前使用的代码中复制它确实有效)。但是当我运行查询时,结果是空的。
如果我将查询更改为不是日期范围,而是一天:
SELECT * FROM .... WHERE ...`date` = '2012-06-12' ....
它工作得很好,返回它应该返回的一个结果。
我试过使用 between 关键字:
SELECT * FROM ... WHERE ...`date` BETWEEN [start] [end]
但它仍然没有返回任何内容......
有什么想法可以让这个查询返回结果吗?
===ANSWER===
当你去的时候:
var curr_date = now.getDate();
var curr_month = now.getMonth();
var curr_year = now.getFullYear();
它出于某种原因返回月份 - 1。所以如果现在的月份是 6,now.getMonth() 将返回 5...只需要在查询中添加 1(希望我早点看到这个)
最佳答案
您的查询似乎对我有用。
参见demo .
我的查询是
SELECT * FROM tblMasterTimesheets
WHERE
username='pdem'
AND
date >= '2012-05-09' AND
date <= '2012-05-15'
ORDER BY date ASC
我假设,username
是 varchar
类型,date
是 timestamp
类型> 或 日期时间
。
关于php - 具有日期范围的 MySQL 查询不返回任何结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11088385/