具有条件的sql查询日期

时间:2011-08-24 14:47:58

标签: php mysql date

我有一个简单的问题。我想在Mysql表上执行查询以选择在特定日期之后发布的帖子,但我无法通过将该日期设置为PHP变量来使其工作。

以下查询不会返回任何内容:

$reqsql = "SELECT * FROM posts WHERE post_date <= " . $from_date;

“post_date”字段设置为日期时间。我已经尝试了$ from_date PHP变量格式的所有内容:

$from_date = date();
$from_date = date('Y-m-d-H-i-s');
$from_date = date('Y-m-d H:i:s');
$from_date = strtodate("now");

这些都不起作用......

但如果我把基本的Mysql日期设置为:

,它的工作正常
$reqsql = "SELECT * FROM posts WHERE post_date <= NOW()";

有什么想法吗?谢谢!

5 个答案:

答案 0 :(得分:5)

您可能只需要将$from_date包装在单引号中。

$reqsql = "SELECT * FROM posts WHERE post_date <= '" . $from_date ."'";

答案 1 :(得分:1)

您需要像查询中的任何其他字符串一样使用日期:

$reqsql = "SELECT * FROM posts WHERE post_date <= '" . $from_date . "'";

答案 2 :(得分:1)

将日期置于引号之间:

$reqsql = "SELECT * FROM posts WHERE post_date <= '" . $from_date . "'";

答案 3 :(得分:0)

首先,如果您想在特定日期之后检查帖子,请使用>=

此外,您可能需要查看Parse date in MySQL

答案 4 :(得分:0)

您可以使用time()以UNIX时间格式从PHP传递日期,然后在SQL查询中对其运行FROM_UNIXTIME()