MySQL查询选择特定的DATETIME值?

时间:2010-11-17 10:29:40

标签: php mysql datetime

现在我有一个MySQL表,其中一列名为“date_time”,它只列出了不同的DATETIME值(例如“2010-11-30 12:55:00”)。我可以直接构建一个查询:

  • 选择是当月的DATETIME值?
  • 选择未通过天数的DATETIME值(例如明天直到月底?

我脑子里的抽象查询看起来像是:

$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函数来过滤掉这些东西?非常感谢提前。

2 个答案:

答案 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)