|
Помогите составить SQL-запрос
|
|||
---|---|---|---|
#18+
Имеется БД Informix с таблицей телефонных вызовов CALLRECORD. Есть поле CALLSTART в формате DATETIME c датой и временем начала каждого вызова. Требуется сделать выборку записей, соответствующих таким критериям: D1 <= дата начала вызова <= D2 T1 <= время начала вызова <= T2 Фишка в том, что для каждой даты нужно получить только записи за промежуток времени. Таким образом должна получиться выборка, скажем, с 1 по 30 число месяца, только за рабоче время с 9:00 до 18:00. Что-либо записывать в БД по условиям использования недопустимо (например, сохранённые процедуры - хотя, возможно, уже есть нужные, просто я не умею найти) SELECT * FROM CALLRECORD WHERE CALLSTART BETWEEN D1 AND D2 Дальше моих знаний недостаточно ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2018, 11:44 |
|
Помогите составить SQL-запрос
|
|||
---|---|---|---|
#18+
Функции DAY() и HOUR() там есть? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2018, 12:23 |
|
Помогите составить SQL-запрос
|
|||
---|---|---|---|
#18+
Обычно в примерах приводят аналогичные конструкции вида: DATETIME YEAR TO DAY DATETIME HOUR TO SECOND но в WHERE у меня их вставить пока не получилось :( Есть функция DATE() - извлекает дату в формате DATE, для времени такой не нашёл Вообще, вариантов приведения к нужному типу много: EXTEND(dt_field, YEAR TO DAY) CAST(dt_field AS DATETIME YEAR TO DAY) dt_field::DATETIME YEAR TO DAY CAST(dt_field AS DATE) dt_field::DATE DATE(dt_field) Я попробую их все, только подскажите общую идею ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2018, 12:53 |
|
Помогите составить SQL-запрос
|
|||
---|---|---|---|
#18+
в ИЗВЕСТНОМ МНЕ СИНТАКСИСЕ ЭТО ВЫГЛЯДИТ ТАК: WHERE BETWEEN(DAY(CALLSTART),D1,D2 ) AND BETWEEN(HOUR(CALLSTART),T1,T2 ) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2018, 12:59 |
|
Помогите составить SQL-запрос
|
|||
---|---|---|---|
#18+
Vodnik, Не совсем понятно, что есть D1,D2 и T1,T2. Но если предположить, что D1 DATE, D2 DATE, T1 DATETIME HOUR TO MINUTE, T2 DATETIME HOUR TO MINUTE то так Код: plsql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2018, 14:08 |
|
|
start [/forum/topic.php?fid=44&msg=39636766&tid=1606747]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
60ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
others: | 16ms |
total: | 173ms |
0 / 0 |