powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Количество дней недели
31 сообщений из 31, показаны все 2 страниц
Количество дней недели
    #39358954
Andrey19967
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для конкретного года вывести количество ПН, ВТ, СР итд
Подскажите, с чего начать, идей нет совсем
...
Рейтинг: 0 / 0
Количество дней недели
    #39358957
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для начала - с изучения календаря. Посчитать сколько в году недель. Найти на какой день
недели приходится первое января. Ну а там уже пойдёт...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Количество дней недели
    #39359014
Andrey19967
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov, так и что дальше?
я понимаю что для не високосного года будет так: на какой день недели пришлось первое января - таких дней недели будет 53, а недель вообще 52, а если високосный год, то такая логика сбивается
...
Рейтинг: 0 / 0
Количество дней недели
    #39359017
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey19967,

Во всех неделях кроме первой и последней гарантированно 7 дней.
Можно глянуть какой день недели 1 янв и 31 дек и решить задачу для оставшихся двух.
Если эта задача вызывает хоть малейшие трудности - не мучай себя, оставь программирование.
Реально лабораторные работы для школьников и то сложнее.
...
Рейтинг: 0 / 0
Количество дней недели
    #39359031
dbms_photoshopоставь программированиезадачка по арифметике.
...
Рейтинг: 0 / 0
Количество дней недели
    #39359131
Andrey19967
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dbms_photoshop, а вот говорить такое считаю некорректным, у каждого бывают случаи, когда встаешь в тупик и не можешь правильно ответить на дважды два
так что не вам меня учить, что мне оставлять, а что нет
...
Рейтинг: 0 / 0
Количество дней недели
    #39359141
Andrey19967
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dbms_photoshop, а вот говорить такое считаю некорректным, у каждого бывают случаи, когда встаешь в тупик и не можешь правильно ответить на дважды два
так что не вам меня учить, что мне оставлять, а что нет
...
Рейтинг: 0 / 0
Количество дней недели
    #39359149
Vint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey19967,
я думаю в Вашей школе не было задачи по нахождению ошибки в доказательстве что 2х2=5. и даже если бы было, Вы бы придумали как не решать ее. не позорьтесь. идите учитесь пользоваться поиском.
...
Рейтинг: 0 / 0
Количество дней недели
    #39359150
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey19967так что не вам меня учить, что мне оставлять, а что нет

Да что ты говоришь? Если тебе в голову не пришло даже с чего начать решение и с таким примитивом уже полез на форум вполне конкретной СУБД, то огрызаться на очевидные реплики просто глупо.

По теме - почему вопрос именно в этой ветке форума, где пример тестовых данных, ожидаемого решения и свои попытки решения проблемы?
...
Рейтинг: 0 / 0
Количество дней недели
    #39359166
спросони
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plsql
1.
2.
3.
4.
5.
6.
SELECT d, COUNT(*) cnt
  FROM (SELECT TO_CHAR(TO_DATE('01012016', 'ddmmyyyy') + LEVEL - 1, 'd') d
          FROM dual
       CONNECT BY LEVEL < (TO_DATE('01012017', 'ddmmyyyy') - TO_DATE('01012016', 'ddmmyyyy')) + 1)
 GROUP BY d  
 ORDER BY 1
...
Рейтинг: 0 / 0
Количество дней недели
    #39359170
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спросони,

Дай голодному человеку рыбу - и он придёт к тебе завтра за следующей.
Дай ему удочку и научи ловить рыбу - он будет сыт в рыбный сезон.
Дай ему леща - он найдёт себе работу и начнёт жрать не только рыбу.
...
Рейтинг: 0 / 0
Количество дней недели
    #39359422
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дай человеку рыбу -- и он сыт весь день
Дай человеку арбуз -- и он ссыт всю ночь
...
Рейтинг: 0 / 0
Количество дней недели
    #39359477
Moss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Когда-то делал так:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
WITH t AS
 (SELECT TO_DATE('01.01.2016', 'dd.mm.yyyy') + LEVEL - 1 dt
    FROM dual
  CONNECT BY LEVEL <= TO_DATE('31.12.2016', 'dd.mm.yyyy') -
             TO_DATE('01.01.2016', 'dd.mm.yyyy') + 1)
SELECT
 initcap(to_char(dt, 'day', 'nls_date_language = ''russian''')),
 mod(to_char(dt, 'J'), 7) + 1,
 COUNT(*)
  FROM t
 GROUP BY mod(to_char(dt, 'J'), 7) + 1,
          initcap(to_char(dt, 'day', 'nls_date_language = ''russian'''))
 ORDER BY mod(to_char(dt, 'J'), 7) + 1
...
Рейтинг: 0 / 0
Количество дней недели
    #39359646
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спросони
Код: plsql
1.
... TO_CHAR(TO_DATE('01012016', 'ddmmyyyy') + LEVEL - 1, 'd') d ...

7 это какой день недели? А если нужно за тысячу лет посчитать? В школе не рассказывали байку про Гаусса?

MossКогда-то делал так:
Код: plsql
1.
... initcap(to_char(dt, 'day', 'nls_date_language = ''russian'''))...

полез туда же пересчитывать звезды на счетных палочках, но хоть с initcap не позорился бы.
...
Рейтинг: 0 / 0
Количество дней недели
    #39359929
legg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спросони
Код: plsql
1.
2.
3.
4.
5.
6.
SELECT d, COUNT(*) cnt
  FROM (SELECT TO_CHAR(TO_DATE('01012016', 'ddmmyyyy') + LEVEL - 1, 'd') d
          FROM dual
       CONNECT BY LEVEL < (TO_DATE('01012017', 'ddmmyyyy') - TO_DATE('01012016', 'ddmmyyyy')) + 1)
 GROUP BY d  
 ORDER BY 1


офигительное решение!!! оч понравилось. спасиба. это вы сами выдумали или классика жанра?
...
Рейтинг: 0 / 0
Количество дней недели
    #39359931
legg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-2-спросони
Код: plsql
1.
... TO_CHAR(TO_DATE('01012016', 'ddmmyyyy') + LEVEL - 1, 'd') d ...

7 это какой день недели? А если нужно за тысячу лет посчитать? В школе не рассказывали байку про Гаусса?

MossКогда-то делал так:
Код: plsql
1.
... initcap(to_char(dt, 'day', 'nls_date_language = ''russian'''))...

полез туда же пересчитывать звезды на счетных палочках, но хоть с initcap не позорился бы.
зря Вы так. сама идея классная). понятно, что это не оптимальное решение, из пушки по воробьям. и решается все в одну строку, но ведь здорово получилось).
...
Рейтинг: 0 / 0
Количество дней недели
    #39360014
на троечку
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
leggсама идея класснаябудешь это рассказыаать преподу или на собеседовании.
...
Рейтинг: 0 / 0
Количество дней недели
    #39360029
legg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на троечкуleggсама идея класснаябудешь это рассказыаать преподу или на собеседовании.
вчера под конец раб дня (да работал) что то окосел и увидел в запросе то, чего там нет)
...
Рейтинг: 0 / 0
Количество дней недели
    #39360334
Moss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-2-,

И чем Вам initcap не угодил ?
Если Вы за использовании его в гроуп бай, то согласен... просто копи паст с селекта на скорую руку...
Писать про то, что это плохо - глупо...
Лучше бы рассказали почему Вы так считаете... и как сделать рациональнее...
И я и другие усвоили бы... а так поди догадайся что Вы имели ввиду...
спасибо.
...
Рейтинг: 0 / 0
Количество дней недели
    #39360405
Аарон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Moss,

Moses, вам не войти в землю обетованную
...
Рейтинг: 0 / 0
Количество дней недели
    #39360414
Day/day
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Moss initcap не угодил ?сочетанием с противоположной форматной маской to_char.
...
Рейтинг: 0 / 0
Количество дней недели
    #39360441
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Moss,

Когда тебе надо вычесть два числа ты генерируешь все строки от первого до второго и потом их суммируешь?
Вот это не глупо, ага.
...
Рейтинг: 0 / 0
Количество дней недели
    #39360443
спросони
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
-2-7 это какой день недели? А если нужно за тысячу лет посчитать? В школе не рассказывали байку про Гаусса?
Ну так понятно, что дописать nls_lang не?
Насчет тысячи лет в задаче речи не идет, а с сгруппировать 365записей, это не долго )
dbms_photoshopВо всех неделях кроме первой и последней гарантированно 7 дней.
Можно глянуть какой день недели 1 янв и 31 дек и решить задачу для оставшихся двух.
Конечно, это решение эффективнее, никто не спорит.
...
Рейтинг: 0 / 0
Количество дней недели
    #39360463
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Моя ложка дегтя в бочку безумства храбрых
Код: plsql
1.
2.
3.
select count(case to_char(dt,'DAY',
   'NLS_DATE_LANGUAGE=''numeric date language''') when '1' then 1 end) "1" from 
(select date '2015-01-01'+level-1 dt from dual connect by (date '2015-01-01'+level-1)<(date '2016-01-01'))

...
Рейтинг: 0 / 0
Количество дней недели
    #39360475
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbms_photoshopВо всех неделях кроме первой и последней гарантированно 7 дней.
Можно глянуть какой день недели 1 янв и 31 дек и решить задачу для оставшихся двух.

Одни из главных заблуждений программистов - предполагать очевидные вещи про время.
Код: plsql
1.
2.
3.
select date '1582-10-04'+level-1,to_char(date '1582-10-04'+level-1,'iW') dt
 from dual
  connect by level<3
...
Рейтинг: 0 / 0
Количество дней недели
    #39360599
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Арсеньев,

Я собственно и вспомнил про школьников в первом сообщении, потому что я решал подобные задачки на календарь на информатике в 9-м классе.
В том числе, мы обсуждали особенности високосных годов, григорианский/юлианский календари и прочее.

И любой думающий школьник посмотрев на решение, где в цикле генерируются все дни периода, когда ответ можно получить простым выражением, подумал бы про умственные способности автора нехорошее. А тут взрослые дяди, сидящие в офисах обсуждают подобные моменты. Деградация-с.
...
Рейтинг: 0 / 0
Количество дней недели
    #39360630
Moss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Day/dayMoss initcap не угодил ?сочетанием с противоположной форматной маской to_char.
Каким еще сочетанием ??
https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions065.htm
на входе char, поднял первую букву в верхний регистр.
И что здесь такого ?????
...
Рейтинг: 0 / 0
Количество дней недели
    #39360651
Moss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Moss]Day/dayпропущено...
сочетанием с противоположной форматной маской to_char.
Каким еще сочетанием ??
https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions065.htm
на входе char, поднял первую букву в верхний регистр.
И что здесь такого ?????
initcap(to_char(:dt, 'day'))
=
to_char(:dt, 'Day')
не вижу в этом никакой проблемы чтоб так ее раздувать...

Если обидел кого-то тем, что делал то что первое пришло в голову и не посмотрел:
https://docs.oracle.com/cd/B28359_01/server.111/b28286/sql_elements004.htm#SQLRF00210
(Uppercase Letters in Date Format Elements
Capitalization in a spelled-out word, abbreviation, or Roman numeral follows capitalization in the corresponding format element. For example, the date format model 'DAY' produces capitalized words like 'MONDAY'; 'Day' produces 'Monday'; and 'day' produces 'monday'.)

Тогда сори... не знаю кто как - а лично я весь Format Models на память не знаю.. и не всегда хватает времени вчитываться... может это и не хорошо - но так есть (((
...
Рейтинг: 0 / 0
Количество дней недели
    #39360687
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbms_photoshopИ любой думающий школьник посмотрев на решение, где в цикле генерируются все дни периода, когда ответ можно получить простым выражением,
Ну не совсем простым. Все же надо догадываться, что в РСФСР не было с 1 по 13 января в 18 году, а в Греции вообще в 24.
Самому залезть в описание таймзоны и выциганить от туда факт перехода, оно конечно интереснее.
...
Рейтинг: 0 / 0
Количество дней недели
    #39360697
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Арсеньевdbms_photoshopИ любой думающий школьник посмотрев на решение, где в цикле генерируются все дни периода, когда ответ можно получить простым выражением,
Ну не совсем простым. Все же надо догадываться, что в РСФСР не было с 1 по 13 января в 18 году, а в Греции вообще в 24.
Самому залезть в описание таймзоны и выциганить от туда факт перехода, оно конечно интереснее.Горе от ума.
...
Рейтинг: 0 / 0
Количество дней недели
    #39361209
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbms_photoshop,

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


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