Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Диапазон дат (от даты до даты) / 25 сообщений из 45, страница 1 из 2
09.08.2017, 17:10
    #39502782
mkr
mkr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Диапазон дат (от даты до даты)
подскажите, как реализовать выборку дат по строкам за период
Код: plsql
1.
select from ...


или
Код: plsql
1.
for <date1> to <date2>
...
Рейтинг: 0 / 0
09.08.2017, 17:14
    #39502785
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Диапазон дат (от даты до даты)
mkr,

не фига не понял.

WHERE field BETWEEN start_date AND end_date ?
...
Рейтинг: 0 / 0
09.08.2017, 17:14
    #39502786
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Диапазон дат (от даты до даты)
использовать WHERE
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
09.08.2017, 17:15
    #39502787
mkr
mkr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Диапазон дат (от даты до даты)
Симонов Денис,

нужно получить набор строк от start_date до end_date
...
Рейтинг: 0 / 0
09.08.2017, 17:18
    #39502790
mkr
mkr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Диапазон дат (от даты до даты)
а-ля сырой календарь
(без привязки к своему набору данных)
...
Рейтинг: 0 / 0
09.08.2017, 17:32
    #39502804
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Диапазон дат (от даты до даты)
09.08.2017 17:18, mkr пишет:
> а-ля сырой календарь
> (без привязки к своему набору данных)

WITH RECURSIVE r AS (
-- стартовая часть рекурсии (т.н. "anchor")
SELECT
date'01.01.2017' AS D
from RDB$DATABASE

UNION ALL

-- рекурсивная часть
SELECT
D+1 AS D
FROM r
WHERE D < date'20.01.2017'
)
SELECT * FROM r;

зы: глубина НЕ БЕСКОНЕЧНА
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
09.08.2017, 17:37
    #39502810
Шавлюк Евгений
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Диапазон дат (от даты до даты)
mkr,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
create or alter procedure get_dates (
    d1 date,
    d2 date)
returns (
    d date)
AS
begin
  d = d1-1;
  while (d < d2) do
  begin
    d = d+1;
    suspend;
  end
end
...
Рейтинг: 0 / 0
09.08.2017, 17:44
    #39502818
WildSery
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Диапазон дат (от даты до даты)
Код: sql
1.
2.
3.
4.
5.
6.
-- очень нужная таблица на все случаи жизни
create table Calendar (_date date, day_of_week int, workday_5 int, workday_6 int, ...)

select _date
  from Calendar
  where _date between ...
...
Рейтинг: 0 / 0
09.08.2017, 17:52
    #39502835
mkr
mkr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Диапазон дат (от даты до даты)
WildSery,

спасибо!
...
Рейтинг: 0 / 0
10.08.2017, 10:13
    #39503157
Док
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Диапазон дат (от даты до даты)
WildSery,

и как ею пользоваться?
...
Рейтинг: 0 / 0
10.08.2017, 10:21
    #39503168
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Диапазон дат (от даты до даты)
Доки как ею пользоваться?
Вообще полезная штука... 14789887
Особенно для аналитики.
...
Рейтинг: 0 / 0
10.08.2017, 10:44
    #39503178
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Диапазон дат (от даты до даты)
Док> и как ею пользоваться?

Select-ы делать, вестимо.

У него необычно наличие нескольких
полей для пятидневки и шестидневки.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
10.08.2017, 11:54
    #39503236
WildSery
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Диапазон дат (от даты до даты)
Док,

У Вадмана он уж слишком, на мой взгляд, перегружен.
И в то же время не содержит нужной информации, например, по пятидневке/шестидневке, если используется для табеля.

Кроме тупо соединения календаря с чем угодно, получая даты подряд, даже если соединяемых данных нет, например:
Код: sql
1.
2.
3.
select C._date, sum(D.summa)
  from Calendar C join Documents D on D._date = C._date
  group by C._date



Применений ещё полно. Например, количество рабочих дней по шестидневке:
Код: sql
1.
2.
3.
select sum(workday_6)
  from Calendar
  where _date between ...



Легко считаются рабочие / нерабочие / банковские / шманковские дни и всякое такое.
Например, можно посчитать планируемые даты оплаты для группы документов, с учётом отсрочки, по банковским дням:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
select D.Doc, D._date ДатаДокумента, max(C._date) ДатаОплаты
  from Documents D
       join Contracts Cn on Cn.id = D.contract_id
       join (select C1._date
               from Calendar С1 on C1._date >= D._date
                    join Calendar С2 on C2._date between D._date and C1._date
               having sum(C2.workday_5)+1 = Cn.days_of_payment_determent) C
  group by D.Doc, D._date
...
Рейтинг: 0 / 0
10.08.2017, 12:05
    #39503245
KreatorXXI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Диапазон дат (от даты до даты)
Народ, а кто и когда заполняет эту таблицу? Или скриптом один раз сразу на века? Потом правка, если что.
У нас есть что-то подобное, но мы храним отклонения. Если выходной переносится на рабочий и т.д.
...
Рейтинг: 0 / 0
10.08.2017, 12:06
    #39503246
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Диапазон дат (от даты до даты)
WildSery> по пятидневке/шестидневке, если используется для табеля.

А что, это действительно пригождалось?
И как ты тогда постпупал со всякими
индивидуалами, переработками и пр.?
Или учёт этого в отдельных таблицах?


> Легко считаются ... банковские / шманковские дни и всякое такое.

Шо це таке? "3 банковских дня" ?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
10.08.2017, 12:07
    #39503249
WildSery
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Диапазон дат (от даты до даты)
KreatorXXIНарод, а кто и когда заполняет эту таблицу? Или скриптом один раз сразу на века? Потом правка, если что.
У нас есть что-то подобное, но мы храним отклонения. Если выходной переносится на рабочий и т.д.На далёкое будущее как правило не требуется.
Заполняю, когда производственный календарь на следующий год утверждают.
...
Рейтинг: 0 / 0
10.08.2017, 12:08
    #39503250
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Диапазон дат (от даты до даты)
KreatorXXI> Народ, а кто и когда заполняет эту таблицу?
KreatorXXI> Или скриптом один раз сразу на века? Потом правка, если что.

Кто-то из ОК (или "программист" по их просьбе),
в любой рабочий день, обычно на месяц-два вперёд.
В преддверии/после всяких праздников - правится.


KreatorXXI> У нас есть что-то подобное, но мы храним отклонения.
KreatorXXI> Если выходной переносится на рабочий и т.д.

Что за отклонения? "13 был праздничный день"?
Отклонения же надо с чем-то сопоставлять.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
10.08.2017, 12:13
    #39503258
WildSery
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Диапазон дат (от даты до даты)
Гаджимурадов РустамА что, это действительно пригождалось?
И как ты тогда постпупал со всякими
индивидуалами, переработками и пр.?
Или учёт этого в отдельных таблицах?Индивидуальные графики, разумеется, в отдельных таблицах.
Они могут заполняться как на основании календаря, так и вообще полностью руками.

Шестидневка почти никогда. Один раз припоминаю, для какого-то хитро..опого табеля.

Гаджимурадов РустамШо це таке? "3 банковских дня" ?Значит, дни, когда работает банк. Как правило, равен "пятидневке".
Календарная дата сдвигается с учётом рабочих/праздничных/перенесённых.
...
Рейтинг: 0 / 0
10.08.2017, 12:16
    #39503263
WildSery
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Диапазон дат (от даты до даты)
Гаджимурадов Рустамв любой рабочий день, обычно на месяц-два вперёд.Производственный календарь утверждается на весь год, соответственно, помесячно с ним возиться смысла нет.
Гаджимурадов РустамЧто за отклонения? "13 был праздничный день"?
Отклонения же надо с чем-то сопоставлять."воскресенье 1 января переносится на пятницу 24 февраля"
Это значит, что 1 января считается как праздничный день, а 24 февраля - как воскресенье.
...
Рейтинг: 0 / 0
10.08.2017, 12:53
    #39503276
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Диапазон дат (от даты до даты)
WildSery> Шестидневка почти никогда.

Собсно, почему я и спросил. Как-то не встречал
организаций, работающих одновременно в обоих
режимах, или то, или другое. Всякая спецовка
(охрана и пр.) - посменные.

WildSery> помесячно с ним возиться смысла нет.

Да, но и нужен-то он, по сути, раз в месяц.

> "воскресенье 1 января переносится на пятницу 24 февраля"
> Это значит, что 1 января считается как праздничный день,
> а 24 февраля - как воскресенье.


А они как-то по особенному хранятся?
Все "переносы" отмечаются как обычно.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
10.08.2017, 13:15
    #39503302
WildSery
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Диапазон дат (от даты до даты)
Гаджимурадов РустамСобсно, почему я и спросил. Как-то не встречал
организаций, работающих одновременно в обоих
режимах, или то, или другое. Всякая спецовка
(охрана и пр.) - посменные.В управлении ресторанами. Там для всяких забегаловок и кейтеринга всё что угодно бывает, в том числе одновременно.
Гаджимурадов РустамА они как-то по особенному хранятся?
Все "переносы" отмечаются как обычно.Могут храниться.
Я обычно такой ерундой не занимаюсь - заполняется шаблон на год, а затем ручками эти несколько переносов, проставляют правильный тип дня.
Поскольку с какой конкретно даты был перенос, ни для одного расчёта не пригодится.
...
Рейтинг: 0 / 0
10.08.2017, 13:19
    #39503311
982183
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Диапазон дат (от даты до даты)
Гаджимурадов РустамКак-то не встречал организаций, работающих одновременно в обоих режимах, или то, или другое.

В смысле?
Стандартная ситуация:
Основная схема - 8*5
Охрана - сутки через двое/трое.
Дежурная тех смена - 12 через 24/36
и т.д. в зависимости от специфики.
...
Рейтинг: 0 / 0
10.08.2017, 15:15
    #39503448
KreatorXXI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Диапазон дат (от даты до даты)
Гаджимурадов РустамЧто за отклонения? "13 был праздничный день"?
Отклонения же надо с чем-то сопоставлять.

У нас считается - будни, выходные суббота и воскресенье. Если всё так, то записей не надо. Если, например, суббота 12 августа рабочий день, то для него добавляется метка "Рабочий день". Для будней может быть метка "Выходной день". Праздники тоже самое. Как-то так. Всё же не понятно, кому поручить ввод календаря. У нас-то, если даже никто ничего не введёт (отклонения), программа всё равно будет отображать будни и выходные.
...
Рейтинг: 0 / 0
10.08.2017, 15:20
    #39503456
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Диапазон дат (от даты до даты)
WildSery> всё что угодно бывает, в том числе одновременно.

Ясно, спасибо. Надо было в ту тему wadman-a твой вариант
запостить, на будущее. Может, кому и пригодится.

982183> В смысле?

В прямом. Или пятидневка, или шестидневка.
Чтобы одновременно - ну вот не сталкивался.
Хотя нет, соврал ошибся - таки сталкивался -
во всяких учебных заведениях (вузы, школы)
такое возможно, когда вся "учебка" - в 6-ку,
а некоторые отделы "АУП" - бухи, ОК etc -
в пятнидевку. Хотя и тут, по сути, календарь
одинаковый, просто у некоторых привилегии.

> Основная схема - 8*5
> Охрана - сутки через двое/трое.
> Дежурная тех смена - 12 через 24/36
> и т.д. в зависимости от специфики.

Это к календарю никакого отношения не имеет,
это личные трудовые графики сотрудников.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
10.08.2017, 15:26
    #39503463
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Диапазон дат (от даты до даты)
KreatorXXIУ нас считается - будни, выходные суббота и воскресенье. Если всё так, то записей не надо. Если, например, суббота 12 августа рабочий день, то для него добавляется метка "Рабочий день". Для будней может быть метка "Выходной день". Праздники тоже самое. Как-то так.
Я и говорю - Вы храните "отклонения".

Чтобы их использовать - нужно (или нет?) их с чем-то
сопоставлять, т.е. с "обычным" календарём, который
нужно либо хранить, либо каждый раз "считать".

> Всё же не понятно, кому поручить ввод календаря.
> У нас-то, если даже никто ничего не введёт (отклонения),
> программа всё равно будет отображать будни и выходные.

Вы пытаетесь найти проблему там, где её нет, ИМХО.
Выходные можно и раз в год автоматом заполнить,
а вот все остальные праздники (май, НГ и пр.) - нет,
кто-то должен вводить (кто - я уже отвечал).
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Диапазон дат (от даты до даты) / 25 сообщений из 45, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]