SQL-запрос с условием на дату - PullRequest
0 голосов
/ 24 августа 2011

У меня есть небольшая простая проблема.Я хочу выполнить запрос к таблице Mysql, чтобы выбрать сообщения, опубликованные после определенной даты, но мне не удается заставить его работать, установив эту дату в качестве переменной PHP.

Следующий запрос не возвращаетчто-нибудь:

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

Поле «post_date» устанавливается как datetime.Я перепробовал все для формата переменной $ 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 ]

5 голосов
/ 24 августа 2011

Возможно, вам нужно заключить $from_date в одинарные кавычки.

$reqsql = "SELECT * FROM posts WHERE post_date <= '" . $from_date ."'";
1 голос
/ 24 августа 2011

Поставьте дату между кавычками:

$reqsql = "SELECT * FROM posts WHERE post_date <= '" . $from_date . "'";
1 голос
/ 24 августа 2011

Вам нужно использовать дату как любую другую строку в вашем запросе:

$reqsql = "SELECT * FROM posts WHERE post_date <= '" . $from_date . "'";
0 голосов
/ 24 августа 2011

Вы можете передать дату из PHP в формате UNIX, используя time(), а затем запустить FROM_UNIXTIME () для него в запросе SQL.

0 голосов
/ 24 августа 2011

Сначала, если вы хотите проверить сообщения после определенной даты, используйте >=.

Также вы можете посмотреть Дата разбора в MySQL

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...