[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: выборка по дате
CaypoH
Здравствуйте.
У меня такая проблема. В базу сохраняется куча информации буквально каждую секунду. Мне нужно обработать определенную информацию за последний час.
В переменной $time_now у меня хранится время на данный момент. Время на час назад у меня хранится в переменной $check_time (чтобы была возможность легко изменить время по которому делать выборку, например с 1 часа до 5 часов).

Соответственно запрос к базе

$sql = mysql_query("SELECT `cin` FROM `user00120100924` WHERE `timefrom`>=".$check_time.");

Соответственно такой финт ушами не срабатывает. Я так понимаю некорректное сравнение поля с форматом datetime с переменной.
Но как мне оформить запрос чтобы из базы выбиралась информация за последний час?

Благодарен за любую помощь.



Спустя 8 минут, 20 секунд (24.09.2010 - 07:14) Семён написал(а):
У тебя маска времени одна и тажа в timefrom и $check_time?

Спустя 4 минуты, 28 секунд (24.09.2010 - 07:19) CaypoH написал(а):
да. в колонке бд timefrom дата вида 2010-09-24 00:00:48, соответственно в $check_time у меня формат date('Y-m-d H:i:s')

Спустя 8 минут, 47 секунд (24.09.2010 - 07:27) Семён написал(а):
В помощь strtotime:
Цитата
strtotime — Преобразует текстовое представление даты на английском языке в метку времени Unix

Спустя 28 минут, 19 секунд (24.09.2010 - 07:56) CaypoH написал(а):
а как я в запросе дату из базы преобразую в юникс формат?
$sql = mysql_query("SELECT * FROM `user00120100924` WHERE strtotime(`timefrom`) > 1285302716");
такой запрос не работает.

Спустя 38 минут, 25 секунд (24.09.2010 - 08:34) Семён написал(а):

Спустя 5 минут (24.09.2010 - 08:39) sergeiss написал(а):
CaypoH - во-первых, у тебя в конце строки ненужная двойная кавычка. Во-вторых, даты и строки внутри запросов нужно заключать в одинарные кавычки.

Спустя 1 час, 51 минута, 57 секунд (24.09.2010 - 10:31) CaypoH написал(а):
на самом деле тут, как я понял, нужно организовывать запрос с помощью DATEDIF либо DATEADD либо каких-то похожих встроенных функций.
а сам запрос должен быть примерно таким
SELECT * FROM `dbname` WHERE дата_время >= дата_время_сегодняшнее -1 час

логически всё ясно. с практической стороной тяжелее.

Спустя 5 часов, 7 минут, 1 секунда (24.09.2010 - 15:38) CaypoH написал(а):
Цитата (sergeiss @ 24.09.2010 - 05:39)
CaypoH - во-первых, у тебя в конце строки ненужная двойная кавычка. Во-вторых, даты и строки внутри запросов нужно заключать в одинарные кавычки.

$sql = mysql_query("SELECT `cin` FROM `user00120100924` WHERE `timefrom`>='$check_time'");

имеешь ввиду так?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.