|
|
|
Помогите сделать выборку
|
|||
|---|---|---|---|
|
#18+
Доброго дня! Есть таблица: Код: plsql 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. 38. Просьба помочь сделать выборку не только тех записей, у которых: 1. START_TIME лежит в промежутке между '2015-08-17' и '2015-08-23', но и 2. START_TIME + i *PERIOD лежит в промежутке между '2015-08-17' и '2015-08-23' где 1 <= i <= NUMBER_REPETITIONS. PERIOD - количество секунд в периоде. Пока что получилось выбрать записи, у кторорых START_TIME или (START_TIME + NUMBER_REPETITIONS*PERIOD) лежат в промежутке между '2015-08-17' и '2015-08-23': Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. Заранее спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2015, 13:23 |
|
||
|
Помогите сделать выборку
|
|||
|---|---|---|---|
|
#18+
Viacheslav_mihalich, Первая дата - t1, вторая дата - t2. Выразить t1-start_time и t2-start_time в секундах и поделить каждую разность на период. Если первая разность между 0 и number_repetitions и ( целые части разностей не равны или первая разность целая ), то попадаем в интервал t1-t2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2015, 09:43 |
|
||
|
Помогите сделать выборку
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2015, 19:15 |
|
||
|
Помогите сделать выборку
|
|||
|---|---|---|---|
|
#18+
LeXa NalBat Код: sql 1. 2. 3. Если уж решил через гланды в жопу долбиться, не забивай на условие:Viacheslav_mihalich1. START_TIME лежит в промежутке между '2015-08-17' и '2015-08-23' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2015, 20:11 |
|
||
|
Помогите сделать выборку
|
|||
|---|---|---|---|
|
#18+
Спасибо за ответы! Воспользовался вариантом: Код: plsql 1. 2. 3. generate_series(0, "NUMBER_REPETITIONS") с нулем выбирает то, что надо, включая условие: Код: plsql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2015, 14:58 |
|
||
|
Помогите сделать выборку
|
|||
|---|---|---|---|
|
#18+
p2., Не согласен с вашей оценкой "через гланды в жопу". Мой вариант с generate_series(0, "NUMBER_REPETITIONS") интуитивно понятен, он соответствует формулировке задачи "START_TIME + i *PERIOD ... где 1 <= i <= NUMBER_REPETITIONS". Встречный вопрос, ваше вычисление "выразить t1-start_time и t2-start_time в секундах и поделить каждую разность на период" будет ли корректным с учетом возможного перехода на летнее/зимнее время? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2015, 10:20 |
|
||
|
Помогите сделать выборку
|
|||
|---|---|---|---|
|
#18+
LeXa NalBatинтуитивно понятенсубъективная оценка своих интеллектуальных способностей. Для кого-то и таблица умножения непостижима. LeXa NalBatбудет ли корректным с учетом возможного перехода на летнее/зимнее время?в задаче и обозначено "without time zone", но даже, если ориентироваться на with time zone, арифметика интервалов инвариантна к переводу времени: Код: sql 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2015, 13:57 |
|
||
|
|

start [/forum/topic.php?fid=53&fpage=106&tid=1997800]: |
0ms |
get settings: |
7ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
29ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
25ms |
get tp. blocked users: |
1ms |
| others: | 237ms |
| total: | 320ms |

| 0 / 0 |
