|
|
|
Группировка по дате
|
|||
|---|---|---|---|
|
#18+
Подскажите пожалуйста как правильно группировать по дате. К примеру по часу, время хранится в unixtime, группирую таким способом Код: sql 1. . Вроде все логично, но последняя минута к примеру от 13:59 до 14:00 у меня записывается как 14:00 И соответственно уходит в другой час. Кто как с этим справляется? Код: sql 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2013, 11:54:56 |
|
||
|
Группировка по дате
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2013, 12:36:25 |
|
||
|
Группировка по дате
|
|||
|---|---|---|---|
|
#18+
Akina, Ругается на YEAR_MONTH_DAY_HOUR, YEAR_MONTH отрабатывает. Только не пойму, как это решает проблему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2013, 12:58:11 |
|
||
|
Группировка по дате
|
|||
|---|---|---|---|
|
#18+
Мадонна миа... это ж просто демонстрация, что EXTRACT никаких округлений не выполняет... Код: sql 1. Ну или от такой вариант попробуй: Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2013, 13:59:52 |
|
||
|
Группировка по дате
|
|||
|---|---|---|---|
|
#18+
Akina, Я наверно туплю, но Вы делаете тоже самое что и у меня получается в итоге Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2013, 14:14:35 |
|
||
|
Группировка по дате
|
|||
|---|---|---|---|
|
#18+
Пока я вижу выход, в БД хранить с отставанием в минуту, а при выборке прибавлять эту минуту. По моему как то криво получается, но решений больше не вижу( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2013, 14:28:57 |
|
||
|
Группировка по дате
|
|||
|---|---|---|---|
|
#18+
А если вот так: Код: sql 1. У тебя ж поле - типа timestamp, верно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2013, 15:50:13 |
|
||
|
Группировка по дате
|
|||
|---|---|---|---|
|
#18+
ldar, Или так: Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2013, 16:29:57 |
|
||
|
Группировка по дате
|
|||
|---|---|---|---|
|
#18+
AkinaА если вот так: Код: sql 1. У тебя ж поле - типа timestamp, верно? Нет у меня unixtime, но все равно спасибо, не знал о такой полезной функции. DV_RUS , нет, так не пойдет. Блин я извиняюсь, сбил вас с толку объяснив свою проблему не ненадлежащим образом. Группировка по часам у меня получается. Проблема в том, что при группировке теряется минута. Если подробнее. Имеется у меня таблица с дискретностью минута, я хочу ее агрегировать по часам. Вот к примеру час 15:00 содержит в себе сумму поминутных значений с 14:00:00.001 по 15:00:00.000 при группировке своим способом или вашим я получаю сумму поминутных значения с 14:00:00.001 по 14:59:00.000 т.е. значение одной минут теряется, с периода 14:59:00.00 по 15:00:00.000, была бы агрегация с таблицы дискретностью секунда, не обращал бы внимание на потерявшуюся секунду, внес бы ее в погрешность. Но в конкретном случае это недопустимо.Помогите советом, думаю многие сталкивались с такой ситуацией. Извиняюсь еще раз за желтый заголовок и объяснение ситуации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2013, 20:12:15 |
|
||
|
Группировка по дате
|
|||
|---|---|---|---|
|
#18+
Дайте скрипт создания тест-таблицы (лишние поля и дефиниции поскипать) и дамп в десяток записей (без кириллицы), включая проблемные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2013, 20:39:40 |
|
||
|
Группировка по дате
|
|||
|---|---|---|---|
|
#18+
ldarНет у меня unixtimeMySQL говорит , что такого типа не знает... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2013, 20:42:29 |
|
||
|
Группировка по дате
|
|||
|---|---|---|---|
|
#18+
ldarВ таком пример виде пойдет? Нет, блин, не пойдёт! Код: sql 1. Где тут TIMESTAMP, блин? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2013, 08:59:34 |
|
||
|
Группировка по дате
|
|||
|---|---|---|---|
|
#18+
AkinaldarВ таком пример виде пойдет? Нет, блин, не пойдёт! Код: sql 1. Где тут TIMESTAMP, блин? Подождите, у меня наверно отличается представления timestamp. Это же Unixtime которое хранит в себе целое число в секундах, отсчитанное от начала эпохи UNIX т.е. 1970 г. Разве не так? Tcли я ошибаюсь, то как называть этот тип? И соответственно у меня используется этот тип в таблицах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2013, 09:35:46 |
|
||
|
Группировка по дате
|
|||
|---|---|---|---|
|
#18+
ldarПодождите, у меня наверно отличается представления timestamp. Это же Unixtime которое хранит в себе целое число в секундах, отсчитанное от начала эпохи UNIX т.е. 1970 г. Разве не так? Tcли я ошибаюсь, то как называть этот тип? И соответственно у меня используется этот тип в таблицах. Мой Вам совет - срочно ЗАБУДЬТЕ ВСЁ, что Вы там придумали. И читайте документацию . Сервер будет работать ТОЛЬКО со своим синтаксисом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2013, 09:46:39 |
|
||
|
Группировка по дате
|
|||
|---|---|---|---|
|
#18+
Akina, Увы, я ничего не придумывал, время хранить в формате unix достаточно популярна. Просто тип данных под нее нужно резервировать INT. В mysql же есть функции такие как FROM_UNIXTIME(). Соответственно предусматривает работы с таким видом данных. Не понятно почему Вас это удивило. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2013, 10:18:49 |
|
||
|
Группировка по дате
|
|||
|---|---|---|---|
|
#18+
ldarя ничего не придумывал, время хранить в формате unix достаточно популярна. Просто тип данных под нее нужно резервировать INT. В mysql же есть функции такие как FROM_UNIXTIME(). Соответственно предусматривает работы с таким видом данных. Не понятно почему Вас это удивило. Ага, а ссылку на документацию я тебе давал так, чисто поржать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2013, 11:15:00 |
|
||
|
Группировка по дате
|
|||
|---|---|---|---|
|
#18+
Akina, ну а в чём ldar ошибается? ldarПодождите, у меня наверно отличается представления timestamp. Это же Unixtime которое хранит в себе целое число в секундах, отсчитанное от начала эпохи UNIX т.е. 1970 г. Разве не так?вот тут вроде то же самое говорится. Не учитывая, конечно, нюансы с таймзонами... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2013, 11:32:15 |
|
||
|
Группировка по дате
|
|||
|---|---|---|---|
|
#18+
tanglirв чём ldar ошибается? Абсолютно во всём. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. Ещё вопросы будут? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2013, 14:03:51 |
|
||
|
Группировка по дате
|
|||
|---|---|---|---|
|
#18+
Akina, а если так Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2013, 14:46:07 |
|
||
|
Группировка по дате
|
|||
|---|---|---|---|
|
#18+
ldarAkina, а если такИ что это изменило? Тип поля как был INT, так и остался INT. И сервер будет с ним работать как с INT, а не как с TIMESTAMP, и ему чхать с высокой колокольни, что ты считаешь это поле штампом времени. Научись различать хранение-обработку данных и их отображение, что ли... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2013, 15:07:29 |
|
||
|
Группировка по дате
|
|||
|---|---|---|---|
|
#18+
Akina,Ну ладно, самое главное понял в каком виде хранится у меня время. Не подскажешь как решить мне изначальную проблему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2013, 15:41:09 |
|
||
|
Группировка по дате
|
|||
|---|---|---|---|
|
#18+
Дополнительно переводи свой INT в TIMESTAMP. Функция CAST() либо CONVERT()... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2013, 16:25:37 |
|
||
|
Группировка по дате
|
|||
|---|---|---|---|
|
#18+
Да, этот SQL Fiddle - выброси на помойку. Не веришь? выполни на нём и на консоли MySQL-сервера на таблице, которая в левом окне, вот такой запрос: Код: sql 1. и сравни результаты... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2013, 16:33:18 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38385608&tid=1836120]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
48ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
64ms |
get tp. blocked users: |
1ms |
| others: | 204ms |
| total: | 346ms |

| 0 / 0 |
