在mysql中匹配日期并给出结果

时间:2016-07-29 14:31:34

标签: php mysql

我在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

我的数据库看起来像:

enter image description here

当我写上面的查询时,它运行完美,但没有给出任何结果。

在这里,我使用了与startdate匹配的 2016-07-21 ,因此不会给出任何结果。那么如果与startdate匹配,我应该写什么查询来获得结果。?

这里我以简单的Y-m-d格式传递日期,在数据库中它以datetime形式存储,所以请帮我解决这个问题。

1 个答案:

答案 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'