现在我有一个MySQL表,其中一列名为“date_time”,它只列出了不同的DATETIME值(例如“2010-11-30 12:55:00”)。我可以直接构建一个查询:
我脑子里的抽象查询看起来像是:
$query = "SELECT * FROM meetings WHERE uid = " . $_SESSION['uid'] . "AND the DATETIME month is active month AND the DATETIME day is bigger than the active day"
这个功能在MySQL中是否可行(做了一些搜索但没有找到任何帮助),或者我以后必须使用PHP函数来过滤掉这些东西?非常感谢提前。
答案 0 :(得分:5)
MySQL有大量的date formatting函数可以解决这个问题:
按特定月份选择...
SELECT ... WHERE MONTH(date_time) = MONTH(now());
按未通过的日期选择:
SELECT ... WHERE DAY(date_time) > DAY(now());
当然,这些类型的查询将在任何年份的任何记录中选出相同的月份/日期。如果你想限制特定的时间块,那么你将不得不添加更多的子句。
答案 1 :(得分:1)
类似的东西:
$query = "SELECT * FROM meetings WHERE uid = " . $_SESSION['uid'] . "WHERE EXTRACT(month from now()) = extract(month from date_time) AND EXTRACT(day from now()) < extract(day from date_time)