使用php和mysql检索当前月,周和日内的行

时间:2014-05-01 11:04:45

标签: php mysql

我有一个包含event_date varchar(10)列的mysql表事件,其中包含7-5-2014形式的日期。

我有一个可以给我的对象:

// 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进行任何必要的更改。

提前致谢。

1 个答案:

答案 0 :(得分: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的time()来设置其值。然后使用PHP的时间函数(如strtotime(' - 1天'))获取您希望查询的日期的时间戳。所以一个简单的例子就是:

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

您也可以使用MYSQL的内置日期时间功能,但我没有经验,因此我不会就我不了解的事情提出建议:)