簡體   English   中英

每月和每周的MySql時間戳查詢和比較

[英]MySql timestamp query and comparison in monthly and weekly

我有一張表格,在其中輸入申請人的條目。 它具有date_added列,其類型為timestamp,默認值為current_timestamp。 我想做一個每周和每月的報告,但我不能決定什么是最好的事情。 我需要一個返回這樣的條目數的sql語句。

switch($searchby){
case "monthly": $qry = "select * from tblapplicant where date_added > $month"; break;
case "weekly": $qry = "select * from tblapplicant where date_added > $week"; break;
}

$res = mysql_query($select);
$rec_count = mysql_num_rows($res);

echo "There are <font color='red' size='3'>".$rec_count."</font> matching records found.";

我知道這是不正確的,但這是我目前能想到的。

我想要的另一件事是,我希望它是確切的年度和月份報告。

編輯:輸出應為:2013年6月整個月有13名申請人。-或每周一次-2013年7月第三季度有3名申請人。

我建議采用以下方法。 首先,使用您的php代碼來確定搜索期限的開始日期以及結束日期。 例如,如果它是2013年9月的月度報表,則您的開始日期為2013-09-01,結束日期為2013-10-01。 然后,您只需查詢一個。

 where date_added >= $startdate
 and date_added < $enddate

這種方法的主要好處是:

  1. 您的時間戳字段的時間部分得到處理。
  2. 您的查詢將相當快地運行,尤其是在為date_added編制索引的情況下。
  3. 與應用程序代碼相比,使用應用程序代碼對programmnig邏輯進行分類更容易
  4. 您可以將查詢作為存儲過程編寫,以使其更快。

這可以是你的sql語句

select * from tblapplicant where month(date_added) > $month
select * from tblapplicant where DAYOFWEEK(date_added) = X

您應該將X替換為您的第1周=星期日,2 =星期一,…,7 =星期六

暫無
暫無

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

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