Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 как получить все дни года  [new]
QWASQ1
Member

Откуда:
Сообщений: 12
надо получить все 365 дней и сравнить с столбцом
11 авг 17, 13:24    [20716647]     Ответить | Цитировать Сообщить модератору
 Re: как получить все дни года  [new]
Viewer
Member

Откуда: Самара
Сообщений: 4980
"Трансформаторы бывают такие, такие, и вот такие..." (c)

Вам в каком виде сравнивать?
11 авг 17, 13:30    [20716683]     Ответить | Цитировать Сообщить модератору
 Re: как получить все дни года  [new]
QWASQ1
Member

Откуда:
Сообщений: 12
Viewer,

в каком смысле ? date dd:mm:yyyy
11 авг 17, 13:42    [20716731]     Ответить | Цитировать Сообщить модератору
 Re: как получить все дни года  [new]
123йй
Member

Откуда:
Сообщений: 1270
QWASQ1,

А в каких системах разделитель даты двоеточие ?
11 авг 17, 13:46    [20716756]     Ответить | Цитировать Сообщить модератору
 Re: как получить все дни года  [new]
Andrey.L
Member

Откуда: Харьков
Сообщений: 1542
QWASQ1
надо получить все 365 дней и сравнить с столбцом
Что делать с високосным годом?
11 авг 17, 13:49    [20716775]     Ответить | Цитировать Сообщить модератору
 Re: как получить все дни года  [new]
env
Member

Откуда: Россия, Москва
Сообщений: 5260
QWASQ1,

на правах шутки
select date '2017-01-01' d from dual union all...


Поищи по форуму по слову календарь.
11 авг 17, 13:49    [20716776]     Ответить | Цитировать Сообщить модератору
 Re: как получить все дни года  [new]
QWASQ1
Member

Откуда:
Сообщений: 12
Viewer,

мне надо так , у меня в таблице есть определенные даты и надо как-то получить все 365 дней и взять дни который не совпадают то-есть дни которых в таблице нет
11 авг 17, 13:50    [20716782]     Ответить | Цитировать Сообщить модератору
 Re: как получить все дни года  [new]
Egoр
Member

Откуда:
Сообщений: 501
QWASQ1,

select date'2016-12-31'+level from dual connect by level <= 365
11 авг 17, 13:56    [20716812]     Ответить | Цитировать Сообщить модератору
 Re: как получить все дни года  [new]
env
Member

Откуда: Россия, Москва
Сообщений: 5260
Egoр,

А если год високосный?
11 авг 17, 13:59    [20716824]     Ответить | Цитировать Сообщить модератору
 Re: как получить все дни года  [new]
Egoр
Member

Откуда:
Сообщений: 501
env,
автор
надо получить все 365 дней и сравнить с столбцом
11 авг 17, 14:00    [20716830]     Ответить | Цитировать Сообщить модератору
 Re: как получить все дни года  [new]
env
Member

Откуда: Россия, Москва
Сообщений: 5260
Egoр,

Всё по ТЗ, действительно.

ТС, если искать не умеешь, то держи уже, допилишь сам
select date '2012-01-01' + level - 1 d from dual connect by date '2012-01-01' + level <= date '2013-01-01' order by 1;
11 авг 17, 14:02    [20716842]     Ответить | Цитировать Сообщить модератору
 Re: как получить все дни года  [new]
mRdUKE
Member

Откуда: ТЛТ
Сообщений: 420
QWASQ1
мне надо так , у меня в таблице есть определенные даты и надо как-то получить все 365 дней и взять дни который не совпадают то-есть дни которых в таблице нет
+
with t as 
(
select trunc(sysdate,'yy')+rownum-1 d
from all_objects
where rownum<=add_months(trunc(sysdate,'y'),12)-trunc(sysdate,'y')
)
select * 
from t
where d not in 
(
select trunc(created) 
from dba_users
where created>trunc(sysdate,'yy')
)
11 авг 17, 14:08    [20716868]     Ответить | Цитировать Сообщить модератору
 Re: как получить все дни года  [new]
Vint
Member

Откуда: Таган-москва
Сообщений: 4355
mRdUKE,
сам писал? или кто то выдал, а ты как макака повторил говнокодище?
11 авг 17, 14:11    [20716879]     Ответить | Цитировать Сообщить модератору
 Re: как получить все дни года  [new]
Vadim5432
Member

Откуда: Россия
Сообщений: 15719
Egoр
QWASQ1,

with t as (
select date'2016-12-31'+level stand_date from dual connect by level <= 365
)
select stand_date,  min(mvt.my_col_date) keep (dense_rank first order by mvt.my_col_date) my_col_date  from t
left join  (
select date'2016-12-31'+level my_col_date from dual connect by level <= 305
union all
select date'2016-12-31'+level my_col_date from dual connect by level <= 305
) mvt on mvt.my_col_date =  t.stand_date
where mvt.my_col_date is null
group by stand_date


поправил. не благодари.
вместо источника в left join полставьте свою таблицу
11 авг 17, 14:17    [20716904]     Ответить | Цитировать Сообщить модератору
 Re: как получить все дни года  [new]
Stax
Member

Откуда: Ukraine,Lviv
Сообщений: 174
QWASQ1
Viewer,

мне надо так , у меня в таблице есть определенные даты и надо как-то получить все 365 дней и взять дни который не совпадают то-есть дни которых в таблице нет

для всей таблицы, или для каждого "кода" свой список?

.....
stax
11 авг 17, 14:34    [20716966]     Ответить | Цитировать Сообщить модератору
 Re: как получить все дни года  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 15996
QWASQ1
в таблице есть определенные даты и надо как-то получить все 365 дней и взятьдни который не совпадают дни которых в таблице нет

Это совсем другая задача.
Надо взять данные из таблицы по критерию my_dt between first_dt and last_dt
и вычислить пропуски в последовательности (аналитика или patter matching в помощь).
11 авг 17, 15:13    [20717144]     Ответить | Цитировать Сообщить модератору
 Re: как получить все дни года  [new]
Stax
Member

Откуда: Ukraine,Lviv
Сообщений: 174
andrey_anonymous
QWASQ1
в таблице есть определенные даты и надо как-то получить все 365 дней и взятьдни который не совпадают дни которых в таблице нет

Это совсем другая задача.
Надо взять данные из таблицы по критерию my_dt between first_dt and last_dt
и вычислить пропуски в последовательности (аналитика или patter matching в помощь).


Это совсем другая задача.

QWASQ1 надо список дат, а не диапазоны с-по

.....
stax
11 авг 17, 15:25    [20717204]     Ответить | Цитировать Сообщить модератору
 Re: как получить все дни года  [new]
env
Member

Откуда: Россия, Москва
Сообщений: 5260
Stax
QWASQ1 надо список дат,

Это совсем другая задача.
QWASQ1 пока ещё не научился формулировать, что ему надо.
11 авг 17, 15:30    [20717213]     Ответить | Цитировать Сообщить модератору
 Re: как получить все дни года  [new]
Fogel
Member

Откуда:
Сообщений: 186
QWASQ1
Viewer,

мне надо так , у меня в таблице есть определенные даты и надо как-то получить все 365 дней и взять дни который не совпадают то-есть дни которых в таблице нет


create table tab1 as 
select distinct date'2016-12-31'+decode(mod(level,4),1,level,2017-01-01) as d from dual connect by level <= 365;  -- это условно создаётся таблица с датами

select t1.d from tab1 t1; -- это даты, которые в ней есть

--- а это даты, которых там нет (без всяких усложнений вроде аналитики, лефт джойнов и прочего)
select to_date('2016-12-31','yyyy-mm-dd') + level as d
  from dual t2
connect by level <= 365
minus
select t1.d from tab1 t1ж
11 авг 17, 18:48    [20717651]     Ответить | Цитировать Сообщить модератору
 Re: как получить все дни года  [new]
-2-
Member

Откуда:
Сообщений: 12957
QWASQ1
надо получить все 365 дней
А если в году нет 365 дней?
11 авг 17, 18:56    [20717669]     Ответить | Цитировать Сообщить модератору
 Re: как получить все дни года  [new]
Календула
Guest
with 
t_rnd_calendar as
(
  select 
    decode(round(dbms_random.value(0,1)), 1, date '2017-01-01' + level - 1, null) d
  from dual 
  connect by date '2017-01-01' + level < date '2018-01-01' 
  order by 1
),
t_full_calendar as
(
  select 
     date '2017-01-01' + level - 1 d
  from dual 
  connect by date '2017-01-01' + level < date '2018-01-01' 
  order by 1
)
select d from t_full_calendar
minus
select d from t_rnd_calendar;
11 авг 17, 19:04    [20717681]     Ответить | Цитировать Сообщить модератору
 Re: как получить все дни года  [new]
Календула
Guest
Fogel, давай договоримся, в следующий раз думать по-разному)
11 авг 17, 19:06    [20717686]     Ответить | Цитировать Сообщить модератору
 Re: как получить все дни года  [new]
кузьма123
Guest
QWASQ1
мне надо .... у меня в таблице .... надо как-то получить все 365 дней и взять дни который не совпадают то-есть дни которых в таблице нет
манагерам буду показывать, что бы не докапывались про свое "надо\не надо\365\787\243"
12 авг 17, 01:23    [20718191]     Ответить | Цитировать Сообщить модератору
 Re: как получить все дни года  [new]
1582
Guest
Календула
Fogel, давай договоримся, в следующий раз думать по-разному)
у фогел ограничение генератора по количеству, а не по датам. Для года в 355 дней он захватит 10 дней следующего года.
12 авг 17, 10:26    [20718374]     Ответить | Цитировать Сообщить модератору
 Re: как получить все дни года  [new]
bishnike
Member

Откуда: ст.Зеленчукская
Сообщений: 366
1582,

полагаю что после таких заявлений много кто достаточно громко сглотнул слюну :D
12 авг 17, 15:02    [20718673]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Oracle Ответить