我在mysql中编写了查询
select * from tblstafftasks as tst join tblstafftaskassignees as tsta on tsta.taskid = tst.id join tblstaff as ts on ts.staffid = tsta.staffid where tst.startdate like '2016-07-21' or '2016-07-21' between tst.startdate and tst.duedate and tst.rel_id = 1
我的数据库看起来像:
当我写上面的查询时,它运行完美,但没有给出任何结果。
在这里,我使用了与startdate匹配的 2016-07-21 ,因此不会给出任何结果。那么如果与startdate匹配,我应该写什么查询来获得结果。?
这里我以简单的Y-m-d格式传递日期,在数据库中它以datetime形式存储,所以请帮我解决这个问题。
答案 0 :(得分:2)
您似乎想要将日期与DATETIME
数据类型进行比较。如果您只想与DATETIME
字段的日期进行比较,请执行以下操作:
SELECT * FROM tblstafftasks AS tst
JOIN tblstafftaskassignees AS tsta ON tsta.taskid = tst.id
JOIN tblstaff AS ts ON ts.staffid = tsta.staffid
WHERE DATE(tst.startdate) <= '2016-07-21'
AND DATE(tst.duedate) >= '2016-07-21'