$sql = "SELECT * FROM mytable WHERE date = :date";
$query = $this->db->prepare($sql);
$query->execute(array(':date' => mktime(0, 0, 0, $m, $d, $y)));
我有unix格式的date
字段(使用time()
函数创建)。如何选择在自定义日,月和年中创建的行($ d,$ m,$ y)?
答案 0 :(得分:1)
如果您想选择一天,您可能应该将查询更改为
SELECT * FROM mytable WHERE date >= :date AND date <= :date + 86400
我还没有对此进行过测试,所以它可能是错的,但逻辑就是这样。
答案 1 :(得分:1)
使用BETWEEN
(如果您在date
字段上使用了索引,则使用索引):
$sql = "
SELECT *
FROM mytable
WHERE date BETWEEN :dateF AND :dateT
";
$query = $this->db->prepare($sql);
$query->execute(array(
':dateF' => mktime(0, 0, 0, $m, $d, $y),
':dateT' => mktime(23, 59, 59, $m, $d, $y),
));