[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Работа с датой
silius
Здрасвуйте, форумчане. Возник у меня такой вопрос:

Тип столбца в базе - 'datetime'.

Мне нужно определить количество строк, которые добавились за последний час и по определённому ip адресу.

Делаю так:

mysql_query("SELECT TIMEDIFF(now(),date_post) as time FROM table WHERE TIMEDIFF(now(),date_post)<1 AND ip_post='$ip_post'")

Но выводит не то, что ожидал.
Что не так? Спасибо



Спустя 22 минуты, 18 секунд (2.11.2010 - 11:47) ИНСИ написал(а):
silius попробуй так:

	mysql_query("
SELECT *
FROM `table`
WHERE `date_post` <= NOW() - INTERVAL 1 DAY AND `ip_post` = '
{$ip_post}'
"
)

Спустя 56 минут, 51 секунда (2.11.2010 - 12:44) silius написал(а):
нет, всё равно выводит все данные

Спустя 14 минут, 31 секунда (2.11.2010 - 12:58) aH6y написал(а):
silius
Храни в таблице время в unix-секундах. Будет намного проще. Если хранишь в секундах, то вот такой запрос:
mysql_query("SELECT * FROM `table` WHERE ".time()." - datetime <= 3600 AND ip_post='$ip_post'")

Спустя 12 минут, 36 секунд (2.11.2010 - 13:11) silius написал(а):
aH6y
понял, спасибо wink.gif

Спустя 3 минуты, 48 секунд (2.11.2010 - 13:15) aH6y написал(а):
silius
Правильно вот так (исправь):
mysql_query("SELECT * FROM `table` WHERE ".time()." - datetime <= 3600 AND ip_post='$ip_post'")

Спустя 12 минут, 57 секунд (2.11.2010 - 13:28) Dron19 написал(а):
mysql_query("SELECT * FROM `table` WHERE UNIX_TIMESTAMP() - UNIX_TIMESTAMP(datetime) <= 3600 AND ip_post='$ip_post'");

так ворде тоже можно

Спустя 1 час, 54 минуты, 8 секунд (2.11.2010 - 15:22) ИНСИ написал(а):
silius может выводить, потому что в моем примере, интервал стоит 1 день, то есть: `date_post` <= NOW() - INTERVAL 1 DAY

Поставь: `date_post` <= NOW() - INTERVAL 1 HOUR, получится так:

	mysql_query("
SELECT *
FROM `table`
WHERE `date_post` <= NOW() - INTERVAL 1 HOUR AND `ip_post` = '
{$ip_post}'
"
);

Спустя 4 минуты, 37 секунд (2.11.2010 - 15:26) silius написал(а):
welbox2
да пробывал я smile.gif. Также ошибку убрал из твоего первого поста wink.gif

Всем спасибо smile.gif

Спустя 20 минут, 8 секунд (2.11.2010 - 15:47) ИНСИ написал(а):
silius эх...... зачем про ощибку сказал? smile.gif smile.gif шучу... да, просто когда набираешь тут в bb коде, где еще и подсветки нет, не все замечаю smile.gif

У тебя получилось? Какой вариант взял?

Спустя 18 минут, 54 секунды (2.11.2010 - 16:05) silius написал(а):
Цитата

silius эх...... зачем про ощибку сказал?...


biggrin.gif

welbox2
взял вариант с INTERVAL. Никогда ей не пользовался, решил использовать и заодно узнать как работает.


_____________
Windows - уникальная операционная система: в ней выключение компьютера начинается с нажатия кнопки ПУСК.
Быстрый ответ:

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