powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Предыдущий SYSDATE на будние дни
25 сообщений из 25, страница 1 из 1
Предыдущий SYSDATE на будние дни
    #39885577
Фотография Frequency
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помогите получить

Дату и время на вчерашний день плюс со включенными временем (SYSDATE, 'DD-MM-YYYY HH24:MI:SS') , то есть : 05/11/2019 23:59:59. И чтобы показывало только будние дни исключить субботу и воскресенье Если сегодня понедельник чтобы показывало дату и время на пятницу 'DD-MM-YYYY HH24:MI:SS';

Заранее спасибо.
...
Рейтинг: 0 / 0
Предыдущий SYSDATE на будние дни
    #39885579
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Когда уж начнёшь пытаться думать сам?
...
Рейтинг: 0 / 0
Предыдущий SYSDATE на будние дни
    #39885581
Oleg M.Ivanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А в воскресенье тоже пятницу должно показывать?
...
Рейтинг: 0 / 0
Предыдущий SYSDATE на будние дни
    #39885584
Фотография Frequency
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oleg M.Ivanov
А в воскресенье тоже пятницу должно показывать?


Ага
...
Рейтинг: 0 / 0
Предыдущий SYSDATE на будние дни
    #39885589
oragraf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Frequency,

offtop"И взмолился я Господу и случилось чудо! У всех суббота, а у меня еще пятница!"(c) бородатый анекдот
...
Рейтинг: 0 / 0
Предыдущий SYSDATE на будние дни
    #39885593
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Frequency,

Даю наводку. Отталкиваться нужно от
Код: plsql
1.
trunc(sysdate, 'iw')

.
...
Рейтинг: 0 / 0
Предыдущий SYSDATE на будние дни
    #39885598
Фотография Frequency
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oleg M.Ivanov
А в воскресенье тоже пятницу должно показывать?


хотя не принципиально
...
Рейтинг: 0 / 0
Предыдущий SYSDATE на будние дни
    #39885604
Lary Denis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AmKadДаю наводку


В будни и на водку?
...
Рейтинг: 0 / 0
Предыдущий SYSDATE на будние дни
    #39885615
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lary Denis
В будни и на водку?
"Немного, зато в валюте." - подумал Штрилиц. ©

Посмотри на него, сколько тем он создал за последние дни, держу пари у него такие будни, что без поллитра не разберешь.
...
Рейтинг: 0 / 0
Предыдущий SYSDATE на будние дни
    #39885655
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AmKad
Frequency,

Даю наводку. Отталкиваться нужно от
Код: plsql
1.
trunc(sysdate, 'iw')

.


IW Week of year (1-52 or 1-53) based on the ISO standard.

почему?

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

влоб case/decode
Код: 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.
SQL> ed
Wrote file afiedt.buf

  1  with t as
  2  (select date '2019-11-03' + level d from dual connect by level <11)
  3  select
  4   d
  5   ,to_char(d, 'dy','NLS_DATE_LANGUAGE=RUSSIAN')
  6   ,to_char(d-decode(to_char(d, 'dy','NLS_DATE_LANGUAGE=RUSSIAN'),'пн',2,'вс',1,0)-1/24/60/60
  7           ,'dd.mm.yyyy hh24:mi:ss')
  8* from t
SQL> /

D        TO TO_CHAR(D-DECODE(TO
-------- -- -------------------
04.11.19 пн 01.11.2019 23:59:59
05.11.19 вт 04.11.2019 23:59:59
06.11.19 ср 05.11.2019 23:59:59
07.11.19 чт 06.11.2019 23:59:59
08.11.19 пт 07.11.2019 23:59:59
09.11.19 сб 08.11.2019 23:59:59
10.11.19 вс 08.11.2019 23:59:59
11.11.19 пн 08.11.2019 23:59:59
12.11.19 вт 11.11.2019 23:59:59
13.11.19 ср 12.11.2019 23:59:59

10 rows selected.




....
stax
...
Рейтинг: 0 / 0
Предыдущий SYSDATE на будние дни
    #39885689
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oleg M.Ivanov
А в воскресенье тоже пятницу должно показывать?
а если в пятницу Новый год
...
Рейтинг: 0 / 0
Предыдущий SYSDATE на будние дни
    #39885702
123йй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymx
а если в пятницу Новый год

"каждую пятницу я в ..." (с) Слепаков
...
Рейтинг: 0 / 0
Предыдущий SYSDATE на будние дни
    #39885709
Фотография Frequency
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elic
Когда уж начнёшь пытаться думать сам?


Я сам подбираю несколько вариантов. Пишу сюда может кто предложит лучше.
...
Рейтинг: 0 / 0
Предыдущий SYSDATE на будние дни
    #39885711
Фотография Frequency
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stax
Frequency,

влоб case/decode
Код: 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.
SQL> ed
Wrote file afiedt.buf

  1  with t as
  2  (select date '2019-11-03' + level d from dual connect by level <11)
  3  select
  4   d
  5   ,to_char(d, 'dy','NLS_DATE_LANGUAGE=RUSSIAN')
  6   ,to_char(d-decode(to_char(d, 'dy','NLS_DATE_LANGUAGE=RUSSIAN'),'пн',2,'вс',1,0)-1/24/60/60
  7           ,'dd.mm.yyyy hh24:mi:ss')
  8* from t
SQL> /

D        TO TO_CHAR(D-DECODE(TO
-------- -- -------------------
04.11.19 пн 01.11.2019 23:59:59
05.11.19 вт 04.11.2019 23:59:59
06.11.19 ср 05.11.2019 23:59:59
07.11.19 чт 06.11.2019 23:59:59
08.11.19 пт 07.11.2019 23:59:59
09.11.19 сб 08.11.2019 23:59:59
10.11.19 вс 08.11.2019 23:59:59
11.11.19 пн 08.11.2019 23:59:59
12.11.19 вт 11.11.2019 23:59:59
13.11.19 ср 12.11.2019 23:59:59

10 rows selected.




....
stax


Спасибо , помогли немного доработал то что мне нужно было из вашего скрипта

Код: plsql
1.
2.
3.
SELECT CASE WHEN TO_CHAR(TO_DATE(SYSDATE , 'DD/MM/YYYY' ), 'DY') = 'MON' 
            THEN TRUNC(SYSDATE) - 2 - 1/24/60/60 
            ELSE  TRUNC(SYSDATE) - INTERVAL '1' SECOND END DT , SYSDATE  FROM DUAL ;
...
Рейтинг: 0 / 0
Предыдущий SYSDATE на будние дни
    #39885714
Фотография Frequency
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stax,

Спасибо за воскресенье тоже, тоже включу в код
...
Рейтинг: 0 / 0
Предыдущий SYSDATE на будние дни
    #39885715
123йй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Frequency

Спасибо , помогли немного доработал то что мне нужно было из вашего скрипта

Код: plsql
1.
2.
3.
SELECT CASE WHEN TO_CHAR(TO_DATE(SYSDATE , 'DD/MM/YYYY' ), 'DY') = 'MON' 
            THEN TRUNC(SYSDATE) - 2 - 1/24/60/60 
            ELSE  TRUNC(SYSDATE) - INTERVAL '1' SECOND END DT , SYSDATE  FROM DUAL ;


Ну ну.
...
Рейтинг: 0 / 0
Предыдущий SYSDATE на будние дни
    #39885719
Фотография Frequency
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
123йй
Frequency

Спасибо , помогли немного доработал то что мне нужно было из вашего скрипта

Код: plsql
1.
2.
3.
SELECT CASE WHEN TO_CHAR(TO_DATE(SYSDATE , 'DD/MM/YYYY' ), 'DY') = 'MON' 
            THEN TRUNC(SYSDATE) - 2 - 1/24/60/60 
            ELSE  TRUNC(SYSDATE) - INTERVAL '1' SECOND END DT , SYSDATE  FROM DUAL ;


Ну ну.


Да спасибо

Код: plsql
1.
TO_CHAR(SYSDATE , 'DY') 
...
Рейтинг: 0 / 0
Предыдущий SYSDATE на будние дни
    #39885722
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stax
AmKad
Код: plsql
1.
trunc(sysdate, 'iw')

почему?
Потому что меньше провоцирует криворуких:
Frequency
Код: plsql
1.
TO_CHAR(SYSDATE , 'DY') 

...
Рейтинг: 0 / 0
Предыдущий SYSDATE на будние дни
    #39885760
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-2-
Stax
пропущено...
почему?
Потому что меньше провоцирует криворуких:
Frequency
Код: plsql
1.
TO_CHAR(SYSDATE , 'DY') 



чтото не сображу (туплю/на ручнике)
как по iw определить суботу/воскрксенье?

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

... 'DY') = 'MON'
[/src]


для 'MON' я б явно прописывал nls (хотя в доке встречаются примеры без nls)

.....
stax
...
Рейтинг: 0 / 0
Предыдущий SYSDATE на будние дни
    #39885774
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stax
чтото не сображу (туплю/на ручнике)
как по iw определить суботу/воскрксенье?
Надо почаще читать форум.
Что получится, если от даты отнять ближайший к ней понедельник?
...
Рейтинг: 0 / 0
Предыдущий SYSDATE на будние дни
    #39885784
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elic
Stax
чтото не сображу (туплю/на ручнике)
как по iw определить суботу/воскрксенье?
Надо почаще читать форум.
Что получится, если от даты отнять ближайший к ней понедельник?

спасибо (вспомнил, вернее невнимательный был, в примере trunc, а я зациклился на to_char)

имхо, с decode/case удобнее для сопровождения

....
stax
...
Рейтинг: 0 / 0
Предыдущий SYSDATE на будние дни
    #39885796
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stax
имхо, с decode/case удобнее для сопровождения
Слишком "хо".
...
Рейтинг: 0 / 0
Предыдущий SYSDATE на будние дни
    #39885857
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КМК,
Без календаря выходных дней, это сферический конь в вакууме, либо упражнение для студентов.
Любой праздник, и потребуется ручная правка...
...
Рейтинг: 0 / 0
25 сообщений из 25, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Предыдущий SYSDATE на будние дни
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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