Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Запрос работаеть не правильно

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
HQ_Maker
Отправлено: 14 Декабря, 2012 - 01:34:22
Post Id


Новичок


Покинул форум
Сообщений всего: 34
Дата рег-ции: Сент. 2010  


Помог: 0 раз(а)




Здрастуйте. Есть таблица в нем храниться host,hit,date.
Мне надо было выбирать по дате хосты.
Делал такой запрос
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. SELECT `host` , `hit` , `date` , WEEKDAY( date ) AS `week`
  3. FROM `31`
  4. AND date >= DATE_SUB( CURRENT_DATE, INTERVAL 4
  5. DAY )
  6. LIMIT 7
  7.  


Этот запрос работал правильно. Я ничего не изменил, а запрос стал работать не правильно.

Так INTERVAL 4 DAY должен дать 4 последних дней. А я вижу
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. host    hit     date                  week
  3. 564     10265   2012-12-09      6
  4. 425     10071   2012-12-10      0
  5. 409     9407    2012-12-11      1
  6. 380     9342    2012-12-12      2
  7. 369     9400    2012-12-13      3
  8. 209     1279    2012-12-14      4
  9.  


как такое получаеться. Может что то Mysql настройки изменилось ?
(Добавление)
INTERVAL 0 DAY должен выводить только 1 день сегоднешний день, а выводить 2 дня, сегодня и вчера.
INTERVAL -1 DAY выводить сегоднешний день. Зачем так ? Так не должно быть

(Отредактировано автором: 14 Декабря, 2012 - 01:36:00)

 
 Top
JustJazz
Отправлено: 15 Декабря, 2012 - 17:10:21
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Дек. 2012  


Помог: 0 раз(а)




Лучше делать выборку с помощью оператора BETWEEN

CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM `31` WHERE DATE(`date`) BETWEEN '2012-12-09' AND '2012-12-14'
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с СУБД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB