gpt4 book ai didi

php - mysql 按日期查询

转载 作者:行者123 更新时间:2023-11-29 22:54:11 24 4
gpt4 key购买 nike

我正在尝试按日期查询 mysql,我有一个变量 $today = date("Y-m-d");

我想用它从前一年的“posts”表中获取“post_content”。然后我将使用 php 回显这些数据。

我到底该怎么做呢?也许是一个 while 循环更改日期并查询?我发现“按日期字段从表中选择字段”,并想象这样的语句将存在,并带有一个参数,让我们按年份查询我的帖子表...

澄清一下,我希望每年查询帖子,就像时间跳跃一样。

我已经围绕这个问题运行了大约两周,非常感谢您的帮助!

**编辑当前代码

$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!";
}

最佳答案

您的 php 代码似乎混淆了列名称 date (出现在您的 WHERE 子句中)和 post_date (显示为由 fetch_assoc() 子句生成的列名称。您实际上同时拥有 datepost_date 列吗?

此外,您的 WHERE 子句中的不等式似乎可能相差一。

如果您想获取从今天开始的最近一年,那就是

WHERE date >= CURDATE() - INTERVAL 1 YEAR

在此之前的一年,它是

WHERE date >= CURDATE() - INTERVAL 2 YEAR
AND date < CURDATE() - INTERVAL 1 YEAR

如果您想要当前日历年,请使用此选项。它有点复杂,因为它允许在 date 列上使用索引。 DATE_FORMAT() 表达式转换当前日期,例如2015-03-10,进入2015-01-01。

WHERE date >= DATE_FORMAT(CURDATE(), '%Y-01-01')

类似地,当前年份之前的日历年也是这样完成的。

WHERE date >= DATE_FORMAT(CURDATE(), '%Y-01-01') - INTERVAL 1 YEAR
AND date < DATE_FORMAT(CURDATE(), '%Y-01-01')

关于php - mysql 按日期查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28788309/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com