Получение любых строк, которые были добавлены до определенной даты - PullRequest
0 голосов
/ 09 апреля 2011

Возможно ли это? Я использовал это, чтобы вставить дату в поле с именем "date":

$date=date("m/d/y");
$sql="INSERT INTO pool (date) VALUES('$date' )";
$result=mysql_query($sql);

Я использовал это утверждение, чтобы получить дату неделю назад:

$variable = date('d-m-y', strtotime('-1 week'));

Так, как бы я выбрал какие-либо строки, которые были добавлены на прошлой неделе?

Ответы [ 2 ]

3 голосов
/ 09 апреля 2011

Вместо того, чтобы сохранять даты как m/d/y, вы должны хранить их как Ymd:

$date=date("Y-m-d");
$sql="INSERT INTO pool (date) VALUES('$date' )";

В базе данных ваши даты будут выглядеть как 2011-04-09.


С этим форматом работать намного проще: будут работать алфавитные сравнения.

Это означает, что поиск строк, которые старше определенной даты, станет примерно таким:

$variable = date('Y-m-d', strtotime('-1 week'));
$query = "select * from pool where date < '$variable'";


Также обратите внимание, что вместо работы с полем date, которое представляет собой varchar (или эквивалент) в вашей базе данных, вы можете использовать столбец DATE -который позволил бы работать с функциями даты и времени в MySQL.

1 голос
/ 09 апреля 2011

Если поле даты является правильным типом даты, вы можете сделать <или> в вашем sql запросе.Например -

SELECT * FROM table WHERE date > '$date'

Если вы хотите все с 1 недели назад до настоящего времени, вы можете сделать что-то вроде выше или

SELECT * FROM table WHERE date BETWEEN '$date' AND NOW()
...