Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Выборка по интервалу дат / 20 сообщений из 20, страница 1 из 1
29.08.2018, 10:46
    #39694751
very_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка по интервалу дат
Добрый день! Есть таблица в записями в которой есть Год YEAR и месяц MONTH создания записи.
Каким образом можно грамотно сделать выборку записей из этой таблицы по интервалу дат, к примеру за период с 01.01.2017 по 01.10.2018?
...
Рейтинг: 0 / 0
29.08.2018, 10:55
    #39694759
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка по интервалу дат
very_грамотно……иметь один date-столбец.
...
Рейтинг: 0 / 0
29.08.2018, 10:59
    #39694761
very_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка по интервалу дат
Уже не получается
...
Рейтинг: 0 / 0
29.08.2018, 11:05
    #39694764
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка по интервалу дат
very_с 01.01.2017 по 01.10.2018?ну-ну...
...
Рейтинг: 0 / 0
29.08.2018, 11:08
    #39694767
Dshedoo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка по интервалу дат
very_,
Учитывая, что формат полей YEAR и MONTH вы скрыли, то
Код: plsql
1.
2.
3.
4.
5.
with q as (select to_date(01.01.2017,'DD.MM.YYYY') as b_date,  to_date(01.10.2018,'DD.MM.YYYY') as e_date from dual)

select * from table t join q on t.year >= to_char(b_date,'YYYY') and t.year <= to_char(e_date,'YYYY')
and to_date(YEAR||MONTH,'YYYYMM') >= to_char(b_date,'YYYYMM')
and to_date(YEAR||MONTH,'YYYYMM') <= to_char(e_date,'YYYYMM')
...
Рейтинг: 0 / 0
29.08.2018, 11:33
    #39694797
123йй
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка по интервалу дат
Dshedoo
and to_date (YEAR||MONTH,'YYYYMM') >= to_char (b_date,'YYYYMM')
ну ну.
...
Рейтинг: 0 / 0
29.08.2018, 11:41
    #39694810
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка по интервалу дат
very_,

where to_date(to_char(MONTH,'FM00')||to_char(YEAR,'FM0000'),'mmyyyy') between trunc(d_begin,'mm') and last_day(d_end)

....
stax
...
Рейтинг: 0 / 0
29.08.2018, 11:44
    #39694817
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка по интервалу дат
Stax,

ой
last_day лишнее

....
stax
...
Рейтинг: 0 / 0
29.08.2018, 12:31
    #39694876
MaximaXXL
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка по интервалу дат
Stax,

как правильно заметил -2- 21657275
Как понять в end_date что это 01.10.2018 если в исходном нету дня?

Надо менять постановку и выбрасывать оттуда дни, чтоб было за период [01.2017 по 10.2018] включительно или [01.2017 по 09.2018] включительно. И уйти от понятия дней.
...
Рейтинг: 0 / 0
29.08.2018, 13:43
    #39694936
SkilledJunior
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка по интервалу дат
Код: plsql
1.
YEAR*100+MONTH >= 201701 and YEAR*100+MONTH < 201810
...
Рейтинг: 0 / 0
29.08.2018, 15:24
    #39695046
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка по интервалу дат
SkilledJunior
Код: plsql
1.
YEAR*100+MONTH >= 201701 and YEAR*100+MONTH < 201810

индекс, гуд бай
...
Рейтинг: 0 / 0
29.08.2018, 15:43
    #39695056
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка по интервалу дат
andreymxиндекс, гуд бай

FBI индекс hello.

SY.
...
Рейтинг: 0 / 0
29.08.2018, 17:57
    #39695163
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка по интервалу дат
А не лучше ли
YEAR*12+MONTH >= 2017*12+01
and YEAR*12+MONTH < 2018*12+10
...
Рейтинг: 0 / 0
29.08.2018, 18:21
    #39695174
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка по интервалу дат
andreymxА не лучше ли
YEAR*12+MONTH >= 2017*12+01
and YEAR*12+MONTH < 2018*12+10

А чем лучше?

SY.
...
Рейтинг: 0 / 0
29.08.2018, 18:37
    #39695186
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка по интервалу дат
SYFBI индекс
Если редакция rdbms позволит.
...
Рейтинг: 0 / 0
29.08.2018, 18:59
    #39695200
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка по интервалу дат
andrey_anonymousЕсли редакция rdbms позволит.

Ну замшелые пусть сами о себе пекутся
Concepts and Usage of Function Based Indexes(Doc ID 66277.1).

SY.
...
Рейтинг: 0 / 0
30.08.2018, 07:43
    #39695291
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка по интервалу дат
andrey_anonymousSYFBI индексЕсли редакция rdbms позволит.Откуда дровишки?
...
Рейтинг: 0 / 0
30.08.2018, 12:44
    #39695476
SkilledJunior
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка по интервалу дат
andreymxА не лучше ли
YEAR*12+MONTH >= 2017*12+01
and YEAR*12+MONTH < 2018*12+10
Какой интервал задан циферками 24211 и 24228?
...
Рейтинг: 0 / 0
30.08.2018, 14:17
    #39695569
SkilledJunior
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка по интервалу дат
andreymxиндекс, гуд бай
Не нравится FBI индекс, тогда как вариант: (YEAR, MONTH) in ... connect by level в помощь
...
Рейтинг: 0 / 0
30.08.2018, 15:34
    #39695648
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка по интервалу дат
ElicОткуда дровишки?

До 9.2 FBI был только в EE.

SY.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Выборка по интервалу дат / 20 сообщений из 20, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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