powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / INTERVAL 7 DAY Возвращает разный результат
17 сообщений из 17, страница 1 из 1
INTERVAL 7 DAY Возвращает разный результат
    #38700855
torment
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет! Есть 2 запроса:
Код: sql
1.
2.
3.
4.
SELECT DATE_FORMAT( date, '%Y-%m-%d' ) as date, percent
FROM log
WHERE date > '2014-07-06' - INTERVAL 7 DAY
ORDER BY id ASC

и
Код: sql
1.
2.
3.
4.
5.
6.
SELECT DATE_FORMAT( date, '%Y-%m-%d' ) as date, sum(money) as summoney
FROM `balance`
WHERE date > '2014-07-06' - INTERVAL 7 DAY
  AND userid = '44'
GROUP BY DATE_FORMAT( date, '%Y-%m-%d' )
ORDER BY ID ASC



Но вот беда! Первый возвращает 7 записей, в второй 8! Как такое может быть, подскажите где ошибка?
...
Рейтинг: 0 / 0
INTERVAL 7 DAY Возвращает разный результат
    #38700857
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так из разных таблиц же выборка. Очевидно, что там разные данные.
...
Рейтинг: 0 / 0
INTERVAL 7 DAY Возвращает разный результат
    #38700858
torment
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft,

Наверное не совсем правильно объяснил.
Меня интересует выбор данных за последние 7 дней от определенной даты.
Так вот первый запрос мне возвращает 7 строк с интервалом дат с 2014-06-30 по 2014-07-06, что правильно, получается 7 дней.
А вот второй запрос мне возвращает уже 8 строк с интервалом дат с 2014-06-29 по 2014-07-06, получается 8 дней. Почему так происходит понять не могу...
...
Рейтинг: 0 / 0
INTERVAL 7 DAY Возвращает разный результат
    #38700866
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выполните вот такие запросы:
Код: sql
1.
2.
3.
4.
SELECT MIN(date),DATE_FORMAT( date, '%Y-%m-%d' ) as date
FROM log
WHERE date > '2014-07-06' - INTERVAL 7 DAY
ORDER BY date


Код: sql
1.
2.
3.
4.
5.
SELECT MIN(date),DATE_FORMAT( date, '%Y-%m-%d' ) as date
FROM `balance`
WHERE date > '2014-07-06' - INTERVAL 7 DAY
  AND userid = '44'
GROUP BY DATE_FORMAT( date, '%Y-%m-%d' )


Подозреваю, что в таблице log запись от 29 июня имеет нулевое время, поэтому не попадает в выборку.
Если дело в этом, то используйте ">="
...
Рейтинг: 0 / 0
INTERVAL 7 DAY Возвращает разный результат
    #38700896
torment
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft,

Спасибо за совет, попробовал, но не помогло(
Вот что возвращает лог, по вашему запросу:

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
MIN(date)           |   date     | summoney
2014-06-29 13:32:04 | 2014-06-29 | 109.68
2014-06-30 13:07:36 | 2014-06-30 | 123.42
2014-07-01 16:04:41 | 2014-07-01 | 177.54
2014-07-02 14:06:00 | 2014-07-02 | 147.16
2014-07-03 14:04:17 | 2014-07-03 | 185.93
2014-07-04 15:51:57 | 2014-07-04 | 108.69
2014-07-05 13:20:01 | 2014-07-05 | 127.46
2014-07-06 12:05:19 | 2014-07-06 | 112.30



Никак не могу понять, откуда он берет 8 записей
...
Рейтинг: 0 / 0
INTERVAL 7 DAY Возвращает разный результат
    #38700897
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
torment,

Не понял, так раньше первый запрос возвращал 7 записей, а теперь 8. Что изменилось?
И, кстати, это не мой запрос, в моем summoney не было.
...
Рейтинг: 0 / 0
INTERVAL 7 DAY Возвращает разный результат
    #38700898
torment
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft,

Ошибся, из таблицы balance, ничего не изменилось, проблема та же. В первом запросе все так же 7
...
Рейтинг: 0 / 0
INTERVAL 7 DAY Возвращает разный результат
    #38700900
torment
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что с summomey, что без него, все равно 8 записей
...
Рейтинг: 0 / 0
INTERVAL 7 DAY Возвращает разный результат
    #38700912
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну значит в таблице log нет записей за 29 июня.
...
Рейтинг: 0 / 0
INTERVAL 7 DAY Возвращает разный результат
    #38700915
torment
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft,

В том то и дело, что есть, в каждой таблице есть лог записей за прошедший месяц, на каждое число месяца.
...
Рейтинг: 0 / 0
INTERVAL 7 DAY Возвращает разный результат
    #38700917
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tormentmiksoft,

В том то и дело, что есть, в каждой таблице есть лог записей за прошедший месяц, на каждое число месяца.Чудес не бывает. Или, по крайней мере, не здесь.

Код: sql
1.
2.
3.
4.
SELECT MIN(date),date(date)
FROM log
WHERE date > '2014-07-06' - INTERVAL 10 DAY
GROUP BY date(date)

что выдаст?

P.S. Использовать для именования объектов в БД слова, совпадающие с синтаксисом языка - плохая практика, очень мешает чтению запросов.
...
Рейтинг: 0 / 0
INTERVAL 7 DAY Возвращает разный результат
    #38700918
torment
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft,

Такой запрос возвращает вот что:

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
MIN(date)           | date(date)
2014-06-26 02:45:48 | 2014-06-26
2014-06-27 00:00:17 | 2014-06-27
2014-06-28 00:01:55 | 2014-06-28
2014-06-29 00:14:43 | 2014-06-29
2014-06-30 00:01:11 | 2014-06-30
2014-07-01 00:23:06 | 2014-07-01
2014-07-02 00:33:07 | 2014-07-02
2014-07-03 00:09:07 | 2014-07-03
2014-07-04 00:03:06 | 2014-07-04
2014-07-05 00:29:45 | 2014-07-05
2014-07-06 04:20:38 | 2014-07-06
2014-07-07 00:02:00 | 2014-07-07



Итого 12 строк, появляется еще выборка за 2014-07-07, хотя в моем случае ее нет.
...
Рейтинг: 0 / 0
INTERVAL 7 DAY Возвращает разный результат
    #38700949
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ерунда какая-то...
Попробуйте интервал в запросе уменьшать по единичке и смотрите, что будет получаться.
...
Рейтинг: 0 / 0
INTERVAL 7 DAY Возвращает разный результат
    #38700998
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
поле date в запросе сделать таким 'date'
...
Рейтинг: 0 / 0
INTERVAL 7 DAY Возвращает разный результат
    #38701006
Диклевич Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tormentmiksoft,

Спасибо за совет, попробовал, но не помогло(
Вот что возвращает лог, по вашему запросу:

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
MIN(date)           |   date     | summoney
2014-06-29 13:32:04 | 2014-06-29 | 109.68
2014-06-30 13:07:36 | 2014-06-30 | 123.42
2014-07-01 16:04:41 | 2014-07-01 | 177.54
2014-07-02 14:06:00 | 2014-07-02 | 147.16
2014-07-03 14:04:17 | 2014-07-03 | 185.93
2014-07-04 15:51:57 | 2014-07-04 | 108.69
2014-07-05 13:20:01 | 2014-07-05 | 127.46
2014-07-06 12:05:19 | 2014-07-06 | 112.30



Никак не могу понять, откуда он берет 8 записей

что непонятного?
2014-07-06 - INTERVAL 7 DAY = 2014-06-29.
А 2014-06-29 13:32:04 больше чем 2014-06-29, следовательно запись 2014-06-29 13:32:04 удовлетворяет условию и попадает в выборку.
...
Рейтинг: 0 / 0
INTERVAL 7 DAY Возвращает разный результат
    #38701010
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да запарил уже этот троль. пока не запостит чтото вразумительное, - что за таблицы, выборки как ему советовали, а лучше данные, раз уж у него по записи на день, предлагаю не гадать...надоело заходить сюда в надежде что нашли причину...
...
Рейтинг: 0 / 0
INTERVAL 7 DAY Возвращает разный результат
    #38701070
torment
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Диклевич Александрчто непонятного?
2014-07-06 - INTERVAL 7 DAY = 2014-06-29.
А 2014-06-29 13:32:04 больше чем 2014-06-29, следовательно запись 2014-06-29 13:32:04 удовлетворяет условию и попадает в выборку.

Точно, спасибо за разъяснения, в принципе проблему решил, немного переделав запросы.

Всем спасибо за помощь и советы!
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / INTERVAL 7 DAY Возвращает разный результат
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]