所以我从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(希望我能早点看到)
答案 0 :(得分:2)
您的查询似乎对我有用。
我的查询
SELECT * FROM tblMasterTimesheets
WHERE
username='pdem'
AND
date >= '2012-05-09' AND
date <= '2012-05-15'
ORDER BY date ASC
我认为,username
的类型为varchar
,而date
的类型为timestamp
或datetime
。
答案 1 :(得分:2)
与Fahim Parkar类似,以下是使用BETWEEN语法的查询示例:http://sqlfiddle.com/#!2/0fcb5/4
听起来你的用户pdem不存在。
答案 2 :(得分:1)
确保:
DD-MM-YYYY
语法正确并确保您知道哪个月是哪个号码(可能是05,6月是06)date
的数据类型是日期
type,而不是通用text / varchar类型。您无法将varchar与&gt; =进行比较(至少不是您想要的方式。仅适用于日期类型)正如法希姆所说,你的代码是正确的。它必须是表格中导致你的问题的东西。