Tre*_*eps 2 php mysql sql pdo date
例如,数据库中的列(日期)显示为"2013-10-14 14:37:38".
如何编辑$todaysDate以显示今天的所有日期?我知道我必须在某个地方使用%,但我已经尝试了很多方法而没有成功.:/
我的代码如下:
$todaysDate = date("Y-m-d");
$query_today = $db->prepare("SELECT * FROM table WHERE date=:date");
$query_today->bindParam(":date", $todaysDate);
$query_today->execute();
Run Code Online (Sandbox Code Playgroud)
更新
以下任何内容均无效.我只想从简单的数据库中选择所有日期date("Y-m-d").如果数据库中的日期是"2013-10-14 14:37:38",我想用2013-10-14选择它.有点像date("Y-m-d%").
例如,如果您将搜索今天旁边的其他日期:
$todaysDate = date("Y-m-d"); # or any other date
$query_today = $db->prepare("SELECT * FROM table WHERE DATE(date) = :date");
$query_today->bindParam(":date", $todaysDate);
$query_today->execute();
Run Code Online (Sandbox Code Playgroud)
例如,仅适用于当前日期:
$query_today = $db->prepare("SELECT * FROM table WHERE DATE(date) = CURDATE()");
$query_today->execute();
Run Code Online (Sandbox Code Playgroud)
ps但是像@ypercube说的那样,如果你在日期字段上有索引,他的例子将使用该索引.
$todaysDate = date("Y-m-d");
$query_today = $db->prepare("SELECT * FROM table WHERE date >= :date AND date < DATE_ADD(:date, INTERVAL 1 DAY)");
$query_today->bindParam(":date", $todaysDate);
$query_today->execute();
Run Code Online (Sandbox Code Playgroud)
要么
$query_today = $db->prepare("SELECT * FROM table WHERE date >= CURDATE() AND date < DATE_ADD(CURDATE(), INTERVAL 1 DAY)");
$query_today->execute();
Run Code Online (Sandbox Code Playgroud)
无论列的类型是DATE,这都将起作用,DATETIME或者TIMESTAMP将使用索引(如果有可用的索引):
WHERE date >= CURRENT_DATE
AND date < CURRENT_DATE + INTERVAL 1 DAY
Run Code Online (Sandbox Code Playgroud)