- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Тренды маркетинга в 2024 году: мобильные продажи, углубленная аналитика и ИИ
Экспертная оценка Адмитад
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Тоесть одной mysql командой не получится, группировать с помощью php?
Млин...
Не группировать с помощью... А задавать условия с помощью!!!
условия запроса заданы правильно
Ниче не понятно, но знаете ли вы,что зону можно менять для текущей сессии ? set time_zone='+3:00';
Знаете ли вы, что часто даты хранят в виде int и тогда арифметика группировки сводится к целочисленному делению ?
надо дату привести к нужному виду и потом группировать по этому приведенному полю
select DATE_FORMAT(c.c_date, '%a') AS date_format from table c
group by date_format
вот привод даты к неделям DATE_FORMAT(c.c_date, '%Y-%u') as c_date_ned
вот привод даты к дням DATE_FORMAT(c.c_date, '%a') AS date_format
netwind, даты вообще-то хранят в разных форматах.
Конкретно в этой таблице дата хранится в формате yyyymmdd а не в int
по поводу
set time_zone='+3:00';
команда действует на момент записи данных, в моем примере данные уже записаны с учетом timezone
SellingFeis, спасибо. Это уже ближе к теме. Допустим, я переведу поле day в time в запросе select,
как добавить +1 час в group by? другими словами, сгруппировать по временному промежутку?
nat000, ну так конвертируйте данные каждого пользователя и храните все datetime. Нормально все будет и даже намного легче в последствии.
netwind,
поменять таблицу и ее структуру не получится по многим причинам
это статистика партнерской программы,
продажи записываются по времени сервера,
а отображаться данные должны в зависимости от локального времени аффилиата, которое задается со стороны клиента
nat000, так это вы ДУМАЕТЕ, что там хранится в виде строки или на самом деле в таблице в этом поле используется char ? я как то не верю. если на самом деле там datetime - то и нет никакой проблемы. при выборе дат МОЖНО ПОДУМАТЬ, что это обычная строка. по-моему старый mysql так форматировал datetime, что они были похожи на строку.
оба поля day и hour - int
но данные хранятся в виде
day: 20091022
hour: 2009102200 ..2009102223
это было сделано для удобства, потому что статистика для админа отображается и в часах и в днях
но вопрос не в этом
вопрос все еще открыт -как сгруппировать дату со смещением
Вас надо изолировать.
Впрочем, поиграйтесь с форматированием дат и приведением дебильных форматов к НОРМАЛЬНЫМ:
я предположил что даты хранятся в char, основная зона сервера +3:00, а в Омске сейчас +6:00
здесь char вместо int, но, я думаю, вам не привыкать напрягаться вместо того чтобы сразу проектировать правильно.