Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Помогите с запросом выборки промежутка времени за месяц
|
|||
|---|---|---|---|
|
#18+
Добрый день! Есть таблица содержащая CDR (детализацию звонков). С плями длительности и времени звонка (и прочими). Нужно сделать выборку из таблицы за месяц, но в заданный промежуток времени. Т.е. Все записи в течение месяца за время с 10:00 до 22:00 (к примеру). Осень не хочется делать цикл. Можно ли сделать это одним запросом? Заранее спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2008, 12:48 |
|
||
|
Помогите с запросом выборки промежутка времени за месяц
|
|||
|---|---|---|---|
|
#18+
воспользуйтесь функцией date_part: дока ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2008, 13:03 |
|
||
|
Помогите с запросом выборки промежутка времени за месяц
|
|||
|---|---|---|---|
|
#18+
LeXa NalBatвоспользуйтесь функцией date_part: дока За ссылку спасибо, но никак не сооброжу чем мне поможет данная функция сделать 1 запрос. Я могу сделать функцию и там цикл, но хочется сделать это красивее, т.к. цикл будет сильно тормозить БД. Может есть какой-нибудь пример? Заранее спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2008, 14:08 |
|
||
|
Помогите с запросом выборки промежутка времени за месяц
|
|||
|---|---|---|---|
|
#18+
Maxim Timofeyev LeXa NalBatвоспользуйтесь функцией date_part: дока За ссылку спасибо, но никак не сооброжу чем мне поможет данная функция сделать 1 запрос. Я могу сделать функцию и там цикл, но хочется сделать это красивее, т.к. цикл будет сильно тормозить БД. Может есть какой-нибудь пример? Заранее спасибо! Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2008, 14:33 |
|
||
|
Помогите с запросом выборки промежутка времени за месяц
|
|||
|---|---|---|---|
|
#18+
если у вас естъ индек по полю времени звонка, надо провeрьте/убедитесь что date_part() его использует, а нето будет скан по всей таблице. (если индекса нет то фиолетово) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2008, 00:29 |
|
||
|
Помогите с запросом выборки промежутка времени за месяц
|
|||
|---|---|---|---|
|
#18+
Konstantin~если у вас естъ индек по полю времени звонка, надо провeрьте/убедитесь что date_part() его используетпостгрес не сможет для проверки ограничения date_part() использовать индекс по timestamp. для ускорения надо строить функциональный индекс по ( date_part( 'hour', call_time_begin ) ). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2008, 10:06 |
|
||
|
Помогите с запросом выборки промежутка времени за месяц
|
|||
|---|---|---|---|
|
#18+
LeXa NalBatпостгрес не сможет для проверки ограничения date_part() использовать индекс по timestamp. для ускорения надо строить функциональный индекс по ( date_part( 'hour', call_time_begin ) ). Так? CREATE INDEX calldate_date_part_idx ON callslog (calldate) WHERE date_part('hour'::text, calldate); ERROR: тип аргумента конструкции WHERE должен быть boolean, а не double precision Но так не получается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2008, 12:39 |
|
||
|
Помогите с запросом выборки промежутка времени за месяц
|
|||
|---|---|---|---|
|
#18+
если использовать только date_part() то да. можно используя индекс выбрать данные по месяцу, а из их потом выбрать данные по конкретным часам. Или использовать <timestamp_filed>::time Код: plaintext 1. 2. 3. 4. 5. 6. или можно еще проще Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2008, 12:40 |
|
||
|
Помогите с запросом выборки промежутка времени за месяц
|
|||
|---|---|---|---|
|
#18+
Maxim TimofeyevТак? CREATE INDEX calldate_date_part_idx ON callslog (calldate) WHERE date_part('hour'::text, calldate); ERROR: тип аргумента конструкции WHERE должен быть boolean, а не double precision Но так не получается.нет. CREATE INDEX calldate_date_part_idx ON callslog ( date_part('hour'::text, calldate) ); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2008, 12:45 |
|
||
|
Помогите с запросом выборки промежутка времени за месяц
|
|||
|---|---|---|---|
|
#18+
Andrey Daeron Код: plaintext 1. 2. 3. 4. Огромное спасибо -- работает! осталось разобраться с индексами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2008, 12:46 |
|
||
|
Помогите с запросом выборки промежутка времени за месяц
|
|||
|---|---|---|---|
|
#18+
второй запрос был слегка неверный, и в первом помойму надо добавить AS something для суб-селекта Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2008, 12:47 |
|
||
|
Помогите с запросом выборки промежутка времени за месяц
|
|||
|---|---|---|---|
|
#18+
LeXa NalBatнет. CREATE INDEX calldate_date_part_idx ON callslog ( date_part('hour'::text, calldate) ); Так тоже не получается: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2008, 13:35 |
|
||
|
Помогите с запросом выборки промежутка времени за месяц
|
|||
|---|---|---|---|
|
#18+
Maxim TimofeyevТак тоже не получается: ERROR: фунции в идексном выражении должны быть помечены как IMMUTABLEпереходите на новую версию постгреса. или создавайте свою функцию-обертку с флагом immutable. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2008, 14:07 |
|
||
|
|

start [/forum/search_topic.php?author=__boris__&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
11ms |
get forum list: |
17ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
58ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
| others: | 651ms |
| total: | 851ms |

| 0 / 0 |
