2011-08-24 102 views
0

我有一个简单的问题。我想在一个Mysql表上执行一个查询来选择在某个日期之后发布的帖子,但是我没有设法通过将该日期设置为一个PHP变量来实现它。sql查询条件日期

下面的查询不返回任何内容:

$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()"; 

任何想法?谢谢!

+1

您的SQL查询格式不正确。你应该总是输出错误(例如:'mysql_error()'或类似的)在开发模式,所以你知道什么是错的。 – NullUserException

回答

5

你可能只需要在单引号包裹$from_date

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

而你需要第三种格式(“Y-m-d H:i:s'')。 – NullUserException

+0

完美,现在运作。 ('Y-m-d-H-i-s')也起作用。谢谢! – gwendall

1

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

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

放在引号之间的日期:

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

首先,如果你想要一个特定的日期后,检查岗位,用>=

此外,您可能想看看Parse date in MySQL

0

你可以使用time()通过从PHP在UNIX时间格式的日期,然后在SQL查询在其上运​​行FROM_UNIXTIME()