簡體   English   中英

MySQL:從表中選擇日期為當前星期和當前月的數據

[英]MySQL: Select data from a table where the date falls in the current Week and current Month

我正在創建一個Web應用程序,如果用戶單擊名為“ WEEK”的鏈接,該頁面將顯示該周提交的所有帖子。 還有一個選項可以查看本月提交的所有帖子。 帖子表中有一列名為post_date,其中日期以YYYY-MM-DD格式存儲。

我的問題:我不知道如何生成本周和本月提交的帖子。

我可以成功選擇當前日期提交的帖子,如下所示:

$today = date("Y-m-d"); // This is the format of the DATE column named post_date in the posts table.
if($_GET['when'] == "today")
{
$when = $today;
}
else if ($_GET['when'] == "week")
{
$when = // I don't know what goes here if I want to generate posts submitted this week
}
else if ($_GET['when'] == "month")
{
$when = // I don't know what goes here if I want to generate posts submitted this month
}
// I have already connected to the database and selected the table.
$query = "SELECT * FROM posts WHERE post_date = '$when'";
$result = mysql_query($query);
// After this I Generate the Posts Using WHILE loop and mysql_fetch_array

如果URL中的$ _GET ['when']值為“ today”,則SCRIPT可以正常工作並生成“ today”提交的帖子。 但是我不知道如何選擇當前星期和當前月份。 我已經完成了家庭作業:我已經搜索並搜索了StackOverflow以查找匹配的問題,但是存在諸如“上周”的數據之類的問題,並且代碼很簡單,無法滿足我的情況。 例如,有一個選項可以通過使用WEEK($today,1)來選擇第一,第二,第三和第四周(我不知道它是否有效,但是我想生成當前提交的帖子周和月)。

提前致謝。

幾個MySQL函數可以為您做這樣的事情

SELECT * FROM posts
WHERE
   WEEK(post_date) = WEEK(CURDATE())
   AND
   MONTH(post_date) = MONTH(CURDATE())

好吧,通過稍微修改代碼,您可以使用SQL來實現WEEK和MONTH問題!

關於: MySQL文檔 ,這可能是您的解決方案:

SELECT *
FROM   posts
WHERE  YEARWEEK(post_date) = YEARWEEK(NOW())

第二個可能更復雜:

SELECT *
FROM   posts
WHERE  YEAR(post_date) = YEAR(NOW())
AND    MONTH(post_date) = MONTH(NOW())

希望我能為您服務。

那這個呢?

if($_GET['when'] == "today") {
    $query = "SELECT * FROM posts WHERE DATE(post_date) = CURDATE()";
} else if ($_GET['when'] == "week") {
    $query = "SELECT * FROM posts WHERE post_date >= DATE_SUB(NOW(), INTERVAL 1 WEEK)";
} else if ($_GET['when'] == "month") {
    $query = "SELECT * FROM posts WHERE post_date >= DATE_SUB(NOW(), INTERVAL 1 MONTH)";
}
$result = mysql_query($query);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM