[英]SELECT count(*) from where date(week number) equal to current week number
[英]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.