2014-05-01 59 views
0

我有一個mysql表事件,列event_date varchar(10)7-5-2014的形式接收日期。使用php和mysql在當前月份,星期和日期內檢索行

我有一個對象,它可以給我:

// displays current month (5) 
$m = $time->getMonth(); 
echo $m; 

//displays current day (1) 
$d = $time->getDay(); 
echo $d; 

// displays current year (2014) 
$y = $time->getYear(); 
echo $y; 

我試圖找出一個辦法來得到當前的日,月和年中的事件。

的PHP下面的查詢是錯誤的,但它給你的想法,以什麼即時試圖做的事:

$eventsWithinDay = query("SELECT * FROM events WHERE LEFT(event_date, 2)='%s'", $d); 

我怎麼能這樣做是否正確? 更好的是,最有效的方法是什麼?

我可以對數據庫或php進行任何必要的更改。

在此先感謝。

+0

也許你可以使用MySQL函數「unix_timestamp」並比較它的方式。 http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_unix-timestamp – Colandus

回答

0

你是以各種方式做到這一點。例如:

SELECT smth FROM somewhere WHERE datefield LIKE '2014-05-%' 

OR

SELECT smth FROM somewhere WHERE datefield >= $start_interval and date <= $end_interval 

在你不得不存儲在BIGINT列的日期和使用PHP的時間()將其值設置後一種情況。然後使用PHP的時間函數(如strtotime(' - 1 day'))獲取您希望查詢的日期的時間戳。因此,一個簡單的例子是:

$q = "SELECT ... WHERE datefield >= " . strtotime('-2 days') // this would search for dates from at least 2 days ago 

你也可以使用MYSQL內置的日期時間函數,但我有那些所以我不打算勸告的東西,我不知道我自己沒有經驗:)

相關問題