- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Все что нужно знать о DDоS-атаках грамотному менеджеру
И как реагировать на "пожар", когда неизвестно, где хранятся "огнетушители
Антон Никонов
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Есть таблица в которой дата сохраняется в таком формате:
день час
20091022 2009102200
20091022 2009102201
20091022 2009102202
.....
20091022 2009102223
Используется такой запрос:
SELECT * where <условие> FROM <таблица> where hour between '2009102200' and '2009102223' group by day
но у сервера есть свой timezone;
нужно сделать выборку в локальном времени, сгрупировать вывод по дням
например, если у пользователя разница с сервером 1 час, для этого пользователя используется уже запрос со
смещением:
SELECT * where <условие> FROM <таблица> where hour between '2009102201' and '2009102301' group by day
20091022 2009102201
20091022 2009102202
20091022 2009102203
....
20091123 2009102301
Но - группируется по дням неправильно , выделенное красным будет сгрупировано в след. день
Ну учитывая что мускуль не может знать какая timezone у клиента, логично предположить, что в условие between, нужно загонять уже даты скорректированные относительно клиентской timezone...
условие в between и так скорректировано, смотрите выше
проблема в group by..
проблема вообще не понятна, ибо само высказывание что:
но у сервера есть свой timezone
ставит в тупик...
Ибо при чем здесь любые зоны, если речь идет о записях в базе данных?
20091022 2009102203
....
20091123 2009102301
Но - группируется по дням неправильно , выделенное красным будет сгрупировано в след. день
Если кстати Вас это удивляет - нужно бросать эту работу...
Меня не удивляет) результат правильный,
но его нужно сгрупировать по дням с учетом смещения
Вопрос в том, возможно ли это сделать с помощью group by
Например, сгрупировать по дням +1 час
К серверу претензий нет
Надеюсь теперь понятно написано..
Щас ругаться начну...
Вы издеваетесь или правда тупите так сильно?
Что вы в качестве условия для between задали - то мускуль и выдает!!!!!
Других вариантов быть не может...
Чтобы он выдавал результаты с учетом смещения, нужно это смещение уже само по себе в between запихать - что непонятно????
Т.е. "пАлюбАсу" встает вопрос обработки запроса из вне, а именно получение зоны клиента и соответствующая корректировка самого запроса...
Смещение УЖЕ УЧТЕНО в between
прочитайте внимательно первый пост
вопрос - как сгрупировать
Теперь и до меня дошло... (Жирафам привет)
group by позволяет условия...
т.е. как то надо туда запихать, что-то типа: group by day+TIME_OFFSET
да, именно так
вопрос в том, как это сделать 😕
Абстрагируясь от моего примера
Как сгрупировать данные таблицы по такому периоду:
22-10-2009 1:00 - 23-10-2009 1:00
23-10-2009 1:00 - 24-10-2009 1:00
24-10-2009 1:00 - 25-10-2009 1:00
....
Как сгрупировать данные таблицы по такому периоду
С помощью программирования!
Тоесть одной mysql командой не получится, группировать с помощью php?