我试图按日期查询mysql,我有一个$ today = date的变量(" Y-m-d");
我想用这个来获得post_content'出自我的帖子'每一年的表格。然后我将使用php回显这些数据。
我将如何在世界上这样做?也许一段时间循环改变日期并查询?我发现"从表格中选择字段按日期和#34;并且可以想象这样的声明将存在一个参数,让我们按年查询我的帖子...
澄清我希望每年查询帖子,就像跳时一样。
我已经用这个圈子跑了大约两个星期了,非常感谢帮助!
**编辑当前代码
$sql = "SELECT * FROM posts
WHERE date > CURDATE() - INTERVAL 1 YEAR
ORDER BY date DESC";
// SELECT * FROM conversions WHERE date = CURRENT_DATE() - INTERVAL 1 DAY AND `user_id` = '$user_id';
$result = $dbc->query($sql);
if ($result->num_rows > 0) {
$i=1;
// output data of each row
while($row = $result->fetch_assoc()) {
echo "<li>";
echo "<p>".$row['post_date']."</p>";
// $clientid.$i =
echo "<h3>".$row["post_content"]."</h3>";
echo "</li>";
}//end while
$i++;
} else {
echo "0 results found in user database!";
}
答案 0 :(得分:0)
根据评论中的其他信息,您可能希望使用YEAR间隔在SQL中解决此问题,并且可能按降序日期排序。
SELECT * FROM conversions
WHERE post_date > CURDATE() - INTERVAL 1 YEAR
ORDER BY post_date DESC
答案 1 :(得分:0)
您的PHP代码似乎混淆了列名date
(显示在您的WHERE
子句中)和post_date
(显示为{{1}的列名称你实际上有fetch_assoc()
和date
列吗?
此外,您的post_date
条款中的不等式可能是一对一的。
如果你想从今天起最近一年,那就
WHERE
在此之前的那一年,它是
WHERE date >= CURDATE() - INTERVAL 1 YEAR
如果它是您想要的当前日历年,请使用此功能。它有点复杂,因为它允许在WHERE date >= CURDATE() - INTERVAL 2 YEAR
AND date < CURDATE() - INTERVAL 1 YEAR
列上使用索引。 date
表达式会转换当前日期,例如2015-03-10,进入2015-01-01。
DATE_FORMAT()
同样地,现在之前的日历年是这样完成的。
WHERE date >= DATE_FORMAT(CURDATE(), '%Y-01-01')