我有一个包含两列MONTH和TEXT的数据库。
如何显示所有条目,但不显示超过当月的月份? (例如,如果我在3月,8月和12月有文字,我们在8月,我只想要显示3月和8月的文字。)
<?php
// select all data at once
$construct ="SELECT * from table WHERE MONTH(DataIntroducere) = ???";
rest of code
?>
我想拥有这个,因为我将输入未来的月份文字,我不希望它显示出来。
答案 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
扩展程序:MySQLi
和PDO_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()等等。