powered by simpleCommunicator - 2.0.29     © 2024 Programmizd 02
Map
Форумы / Oracle [игнор отключен] [закрыт для гостей] / как получить все дни года
33 сообщений из 33, показаны все 2 страниц
как получить все дни года
    #39504022
QWASQ1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
надо получить все 365 дней и сравнить с столбцом
...
Рейтинг: 0 / 0
как получить все дни года
    #39504032
Фотография Viewer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
" Трансформаторы бывают такие, такие, и вот такие... " (c)

Вам в каком виде сравнивать?
...
Рейтинг: 0 / 0
как получить все дни года
    #39504049
QWASQ1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Viewer,

в каком смысле ? date dd:mm:yyyy
...
Рейтинг: 0 / 0
как получить все дни года
    #39504058
123йй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
QWASQ1,

А в каких системах разделитель даты двоеточие ?
...
Рейтинг: 0 / 0
как получить все дни года
    #39504064
Andrey.L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
QWASQ1надо получить все 365 дней и сравнить с столбцомЧто делать с високосным годом?
...
Рейтинг: 0 / 0
как получить все дни года
    #39504065
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
QWASQ1,

на правах шутки
Код: plsql
1.
select date '2017-01-01' d from dual union all...



Поищи по форуму по слову календарь.
...
Рейтинг: 0 / 0
как получить все дни года
    #39504068
QWASQ1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Viewer,

мне надо так , у меня в таблице есть определенные даты и надо как-то получить все 365 дней и взять дни который не совпадают то-есть дни которых в таблице нет
...
Рейтинг: 0 / 0
как получить все дни года
    #39504078
Фотография Egoр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
QWASQ1,

Код: plsql
1.
select date'2016-12-31'+level from dual connect by level <= 365
...
Рейтинг: 0 / 0
как получить все дни года
    #39504080
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Egoр,

А если год високосный?
...
Рейтинг: 0 / 0
как получить все дни года
    #39504082
Фотография Egoр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
env,
авторнадо получить все 365 дней и сравнить с столбцом
...
Рейтинг: 0 / 0
как получить все дни года
    #39504085
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Egoр,

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

ТС, если искать не умеешь, то держи уже, допилишь сам
Код: plsql
1.
select date '2012-01-01' + level - 1 d from dual connect by date '2012-01-01' + level <= date '2013-01-01' order by 1;
...
Рейтинг: 0 / 0
как получить все дни года
    #39504090
Фотография mRdUKE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
QWASQ1мне надо так , у меня в таблице есть определенные даты и надо как-то получить все 365 дней и взять дни который не совпадают то-есть дни которых в таблице нет
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
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')
)

...
Рейтинг: 0 / 0
как получить все дни года
    #39504093
Vint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mRdUKE,
сам писал? или кто то выдал, а ты как макака повторил говнокодище?
...
Рейтинг: 0 / 0
как получить все дни года
    #39504097
Фотография Vadim5432
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EgoрQWASQ1,

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
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 полставьте свою таблицу
...
Рейтинг: 0 / 0
как получить все дни года
    #39504115
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
QWASQ1Viewer,

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

.....
stax
...
Рейтинг: 0 / 0
как получить все дни года
    #39504147
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
QWASQ1в таблице есть определенные даты и надо как-то получить все 365 дней и взятьдни который не совпадают дни которых в таблице нет
Это совсем другая задача.
Надо взять данные из таблицы по критерию my_dt between first_dt and last_dt
и вычислить пропуски в последовательности (аналитика или patter matching в помощь).
...
Рейтинг: 0 / 0
как получить все дни года
    #39504156
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymousQWASQ1в таблице есть определенные даты и надо как-то получить все 365 дней и взятьдни который не совпадают дни которых в таблице нет
Это совсем другая задача.
Надо взять данные из таблицы по критерию my_dt between first_dt and last_dt
и вычислить пропуски в последовательности (аналитика или patter matching в помощь).

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

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

.....
stax
...
Рейтинг: 0 / 0
как получить все дни года
    #39504158
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StaxQWASQ1 надо список дат,
Это совсем другая задача.
QWASQ1 пока ещё не научился формулировать, что ему надо.
...
Рейтинг: 0 / 0
как получить все дни года
    #39504252
Фотография Fogel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
QWASQ1Viewer,

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

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
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ж
...
Рейтинг: 0 / 0
как получить все дни года
    #39504254
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
QWASQ1надо получить все 365 днейА если в году нет 365 дней?
...
Рейтинг: 0 / 0
как получить все дни года
    #39504258
Календула
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
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;
...
Рейтинг: 0 / 0
как получить все дни года
    #39504260
Календула
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Fogel, давай договоримся, в следующий раз думать по-разному)
...
Рейтинг: 0 / 0
как получить все дни года
    #39504313
кузьма123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
QWASQ1мне надо .... у меня в таблице .... надо как-то получить все 365 дней и взять дни который не совпадают то-есть дни которых в таблице нетманагерам буду показывать, что бы не докапывались про свое "надо\не надо\365\787\243"
...
Рейтинг: 0 / 0
как получить все дни года
    #39504339
1582
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
КалендулаFogel, давай договоримся, в следующий раз думать по-разному)у фогел ограничение генератора по количеству, а не по датам. Для года в 355 дней он захватит 10 дней следующего года.
...
Рейтинг: 0 / 0
как получить все дни года
    #39504388
bishnike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1582,

полагаю что после таких заявлений много кто достаточно громко сглотнул слюну :D
...
Рейтинг: 0 / 0
как получить все дни года
    #39504403
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1582Для года в 355 днейКакая галактика? Какая звезда? Какая по счёту планета?
Или сколько +/- миллиардов лет?
...
Рейтинг: 0 / 0
как получить все дни года
    #39504436
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElicКакая галактика? Какая звезда? Какая по счёту планета?
Или сколько +/- миллиардов лет?

Товарищ имеет ввиду введение грегорианского календаря (так называемая папская булла Inter Gravissimas):

удалялись 10 дней (только в 1582 году) — после 4 октября 1582 года должно последовать 15 октября 1582 года. И Oracle этой булле следует :)

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
SQL> select to_char(date '1582-10-4' + 1,'fmDD Month, YYYY') from dual;

TO_CHAR(DATE'158
----------------
15 October, 1582

SQL> select date '1583-1-1' - date '1582-1-1' from dual;

DATE'1583-1-1'-DATE'1582-1-1'
-----------------------------
                          355

SQL>



SY.
...
Рейтинг: 0 / 0
как получить все дни года
    #39504445
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя с ISO литералами не все пучком:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
SQL> select date '1582-10-5' from dual;

DATE'1582
---------
05-OCT-82

SQL> select to_char(date '1582-10-5','fmDD Month, YYYY') from dual;

TO_CHAR(DATE'1582-
------------------
00 000000000, 0000

SQL>



Да и с TO_DATE я ожидал что-то типа "invalid date" а получил:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
SQL> select to_date('1582-10-5','YYYY-MM-DD') from dual;

TO_DATE('
---------
15-OCT-82

SQL> select to_char(to_date('1582-10-5','YYYY-MM-DD'),'fmDD Month, YYYY') from dual;

TO_CHAR(TO_DATE(
----------------
15 October, 1582

SQL>



SY.
...
Рейтинг: 0 / 0
как получить все дни года
    #39504450
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SYне все пучком
Код: plsql
1.
2.
3.
4.
5.
SQL> select to_char(date'1582-12-31', 'ddd'), date'1582-12-31'-date'1581-12-31' from dual;

TO_ DATE'1582-12-31'-DATE'1581-12-31'
--- ---------------------------------
365                               355
...
Рейтинг: 0 / 0
как получить все дни года
    #39504592
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Календула,

зачем order by 1?

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

зачем order by 1?

.....
stax

Stax, да бог с этим order by 1. Тебя

Код: plsql
1.
  connect by date '2017-01-01' + level < date '2018-01-01' 




не смущает?

SY.
...
Рейтинг: 0 / 0
как получить все дни года
    #39504779
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stax, да бог с этим order by 1. Тебя

Код: plsql
1.
  connect by date '2017-01-01' + level < date '2018-01-01' 


не смущает?
SY.[/quot]

смущает, но при первом же прогоне ошибку обнаружат

order by ж оставят
по чесному то я надеялся что оптимизатор сортировку проигнорирует, но нет - упорядочивает

.....
stax
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
как получить все дни года
    #40116949
alexekoz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Много разных вариантов, вот еще один
Код: plsql
1.
select trunc(to_date(:p_date, 'YYYY-MM-DD') + 1 - rownum) as date_value from dual connect by rownum < 181;
...
Рейтинг: 0 / 0
33 сообщений из 33, показаны все 2 страниц
Форумы / Oracle [игнор отключен] [закрыт для гостей] / как получить все дни года
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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