Vis*_*ese 5 php mysql datetime
我试图让数据的的当前日期在MySQL.我有一个名为列created_at存储日期和时间(2017-12-31 11:32:54)使用NOW()功能使用报表,
$stmt = $this->conn->prepare("INSERT INTO log(id, name, created_at) VALUES(?, ?, NOW())");
$stmt->bind_param("ss", $id, $name);
$result = $stmt->execute();
Run Code Online (Sandbox Code Playgroud)
现在我想忽略时间在created_at列,以及获取当前日期(今天的日期)的数据.
我试过使用这个查询,
SELECT * FROM log WHERE created_at = DATE_SUB(CURDATE(), INTERVAL 0 DAY)
Run Code Online (Sandbox Code Playgroud)
但这导致了zero rows selected.
请帮我解决这个问题.
Tim*_*sen 10
一个办法是包created_at用DATE(),然后进行比较CURDATE():
SELECT *
FROM log
WHERE DATE(created_at) = CURDATE();
Run Code Online (Sandbox Code Playgroud)
但这具有排除在created_at柱上使用索引的可能性的缺点.我们也可以这样说:
SELECT *
FROM log
WHERE created_at >= CURDATE() AND created_at < CURDATE() + INTERVAL 1 DAY;
Run Code Online (Sandbox Code Playgroud)
这将允许使用索引created_at,尽管它有点冗长.