我有一个包含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进行任何必要的更改。
提前致谢。
答案 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的内置日期时间功能,但我没有经验,因此我不会就我不了解的事情提出建议:)