在unix时间中为特定日期选择行

时间:2014-10-26 13:27:20

标签: php mysql sql date pdo

$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)?

2 个答案:

答案 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),
));