我有一个简单的问题。我想在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()";
有什么想法吗?谢谢!
答案 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()。