获取所有数据直到当月

时间:2013-08-31 09:12:48

标签: php mysql

我有一个包含两列MONTH和TEXT的数据库。

如何显示所有条目,但不显示超过当月的月份? (例如,如果我在3月,8月和12月有文字,我们在8月,我只想要显示3月和8月的文字。)

<?php

// select all data at once

$construct ="SELECT * from table WHERE MONTH(DataIntroducere) = ???";
rest of code

?>

我想拥有这个,因为我将输入未来的月份文字,我不希望它显示出来。

3 个答案:

答案 0 :(得分:1)

尝试

$construct ="SELECT * FROM table WHERE MONTH(DataIntroducere) <= ".date('m');

或者在mysql中你可以试试

$construct ="SELECT * from table WHERE MONTH(DataIntroducere) <= MONTH(CURDATE())";

并且由于整个mysql_*扩展程序(提供带有前缀ext/mysql PHP命名的所有函数)从mysql_*开始正式弃用,并尝试避免PHP v5.5.0语句将来删除

您可以更好地使用其他两个MySQL扩展程序:MySQLiPDO_MySQL,其中任何一个都可以用来代替ext/mysql

答案 1 :(得分:0)

最明智的做法是将日期保存为unix时间戳。 http://www.unixtimestamp.com/index.php

大多数编程语言都提供返回unix时间戳的方法。然后,您可以将当前月份转换为时间戳并执行查询,如

SELECT * FROM table WHERE month < timestamp_of_current_month

答案 2 :(得分:0)

$construct = "SELECT * FROM table WHERE DATE(DataIntroducere) <= DATE(NOW());

这是(正确的)。而且你不必关心YEAR(),MONTH(),CURDATE()等等。