nat000

Рейтинг
45
Регистрация
12.11.2007
Himiko:

А вы как на сервер заходите?

putty ,ftp

как настроить - в инете и ищу.. :(

SellingFeis, я уже

решил проблему с помощью "ужасного" select запроса :D

Не группировало по дням потому, что все записи имели разные

поля hour. Поэтому убрал hour из select и вместо этого добавил время в условие

Всем спасибо 🚬

вот сейчас как раз пробую разные жуткие выражения в GROUP BY )))

netwind, к сожалению ( а может и к счастью (😂)), проектировал не я.

проектировали задолго до меня, году эдак в ....

Слишком много завязано на этой таблице, чтобы ее структуру сейчас менять

За пример спасибо :)

nat000 добавил 23.11.2009 в 16:33

netwind,

по поводу вашего примера

допустим, пользователь ввел 29 октября 2009, т.е. 20091029:


create table t (d char(20));
insert into t values ('200910292340'),('200910292240');

mysql> select str_to_date(d,'%Y%m%d%H%i') from t;
+-----------------------------+
| str_to_date(d,'%Y%m%d%H%i') |
+-----------------------------+
| 2009-10-29 23:40:00 |
| 2009-10-29 22:40:00
...............................

| 2009-10-29 00:40:00 |
+-----------------------------+

mysql> select CONVERT_TZ(str_to_date(d,'%Y%m%d%H%i'),'+3:00','+6:00') from t;
+---------------------------------------------------------+
| CONVERT_TZ(str_to_date(d,'%Y%m%d%H%i'),'+3:00','+6:00') |
+---------------------------------------------------------+
| 2009-10-30 02:40:00 |
| 2009-10-30 01:40:00 |

....

2009-10-29 03:40:00
+---------------------------------------------------------+


Я опять получу разные дни.

Я не спрашиваю как конвертировать таймзону, а как сгрупировать по дням

оба поля day и hour - int

но данные хранятся в виде

day: 20091022

hour: 2009102200 ..2009102223

это было сделано для удобства, потому что статистика для админа отображается и в часах и в днях

но вопрос не в этом

вопрос все еще открыт -как сгруппировать дату со смещением

netwind,

поменять таблицу и ее структуру не получится по многим причинам

это статистика партнерской программы,

продажи записываются по времени сервера,

а отображаться данные должны в зависимости от локального времени аффилиата, которое задается со стороны клиента

netwind, даты вообще-то хранят в разных форматах.

Конкретно в этой таблице дата хранится в формате yyyymmdd а не в int

по поводу

set time_zone='+3:00';

команда действует на момент записи данных, в моем примере данные уже записаны с учетом timezone

SellingFeis, спасибо. Это уже ближе к теме. Допустим, я переведу поле day в time в запросе select,

как добавить +1 час в group by? другими словами, сгруппировать по временному промежутку?

условия запроса заданы правильно

Тоесть одной mysql командой не получится, группировать с помощью php?

да, именно так

вопрос в том, как это сделать 😕

Абстрагируясь от моего примера

Как сгрупировать данные таблицы по такому периоду:

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

....

Всего: 83