我有一些blogpost,我想創建一個檔案的鏈接。用php和mysql分裂成四分之一
鏈接將轉到只返回特定季度結果的頁面,我如何使用php和mysql來完成此操作?
所以我有一個表中的「日期」字段,只想返回本季度的結果 - 例如與第一季度的鏈接將僅返回1月1日至3月30日的結果。
我可以用一組靜態查詢和日期來做到這一點,但我想以更具編程的方式來做到這一點。
我有一些blogpost,我想創建一個檔案的鏈接。用php和mysql分裂成四分之一
鏈接將轉到只返回特定季度結果的頁面,我如何使用php和mysql來完成此操作?
所以我有一個表中的「日期」字段,只想返回本季度的結果 - 例如與第一季度的鏈接將僅返回1月1日至3月30日的結果。
我可以用一組靜態查詢和日期來做到這一點,但我想以更具編程的方式來做到這一點。
編輯:你說的是一年的四分之一,而不是結果集的四分之一(1/4)。
步驟2:使用WHERE
子句篩選正確的月份。 Date_Format()的一些變化。
SELECT * FROM <table>
WHERE Date_Format(date_stamp,'%Y-%m') IN ('2010-10','2010-11','2010-12')
當然,你會希望做一些PHP,以確定你的地方硬編碼月份字符串的需要幾個月。但是,這應該讓你得到你需要的季度報告。我不說使用QUARTER(date)
(返回1 - 4)的原因是因爲有時候你的季度需要定製,而更通用的自制機制則更加可定製。 (而且,你還沒有說需要什麼四分之一系統。)
注意:如果你想要一個總結(總/ avg/etc)的某個領域的話,你也可以使用這種技術來做一個分組該組也是如此。
這是我使用的代碼:
$quarter = $_REQUEST['quarter'];
$quarter_conf = array(1=>"('2011-01','2011-02','2011-03')", 2=>"('2011-04','2011-05','2011-06')",3=>"('2011-07','2011-08','2011-09')", 4=>"('2011-10','2011-11','2011-12')");
$sql = "SELECT * FROM table where Date_Format(`date`,'%Y-%m') IN ".$quarter_conf[$quarter]." ORDER BY `date` DESC";
更新我的問題 - 不知道我失蹤了。可能如何使用此功能 - http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_quarter – 2011-02-03 01:02:55