[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: mysql запрос вывод datetime за 24 часа
DooMka
Столкнулся с такой проблемой, а именно, не умею работать с параметрами datetime mysql, то-есть не могу поставить в условие запроса к mysql для получение массива с записями которые имеют срок давности не менее 24 часов

и так обычный запрос

$zapros = mysql_query("SELECT id,names FROM tabl_zapisi WHERE dates=' не позднее 24 часов '",$db);


но не всё так банально, ячейка date имеет тип данных DATETIME - а это значит хранение данных в виде 2012-07-24 05:09:58

и вот как объяснить движку, что нужны только строки с датой публикации не позднее 24 часов, то-есть как мне создать предположим переменную $vremyasei4as с типом DATETIME и уменьшить значение этой переменной на 24 часа, и второй вариант как уменьшить её на 5 минут.

Только после создания этих переменных я смогу включить их в запрос, надеюсь напишу правильно:

$zapros = mysql_query("SELECT id,names FROM tabl_zapisi WHERE dates<'$vremyasei4as'",$db);


???

P.S. данное условие необходимо для работы блока - кто сейчас на сайте, для знающих синтаксис php и mysql это несложно. И вся работа любого блока (Кто сейчас онлайн на сайте) работает именно таким образом, одним запросом. А вот занесение пользователей в таблицу онлайна, тобиш обновлением дат, лучше с помощью jquery и то делать запрос, если дата указанного не позднее 5-и минут, то не производить перезапись последней активности пользователя - но это уже на усмотрение автора...



Спустя 20 минут, 34 секунды (24.07.2012 - 05:01) kamanch написал(а):
$zapros = mysql_query("SELECT `id`, `names` FROM `tabl_zapisi` WHERE UNIX_TIMESTAMP(NOW( )) - UNIX_TIMESTAMP(`dates`) < 86400");

86400 - количество секунд в сутках

Второй вариант додумаешь сам уже.

И тут все очень хорошо расписано, почитай MySQL Функции даты и времени

Спустя 4 часа, 51 минута, 4 секунды (24.07.2012 - 09:52) vagrand написал(а):
h.n.81

Ты привел плохой пример, в таком запросе не будут использоватся индексы. Вот как надо:


SELECT `id`, `names`
FROM `tabl_zapisi`
WHERE dates > date_sub(now(), interval 24 HOUR)

Спустя 16 часов, 56 минут, 29 секунд (25.07.2012 - 02:49) kamanch написал(а):
vagrand
Согласен. При условии, что date_sub (PHP 5 >= 5.3.0)

Спустя 12 часов, 31 минута, 41 секунда (25.07.2012 - 15:20) vagrand написал(а):
h.n.81
Цитата
Согласен. При условии, что date_sub (PHP 5 >= 5.3.0)


А при чем тут версия PHP? Что-то не уловил мысль

Спустя 46 минут, 39 секунд (25.07.2012 - 16:07) kamanch написал(а):
vagrand
Пост написан был под утро smile.gif
Увидел знакомое слово date_sub. Такую же функцию ввели в php с 5ой версии. А то, что оно у тебя в sql-е, не увидел сонными глазами
Быстрый ответ:

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