|
Интервал по дням рождения PL/SQL
|
|||
---|---|---|---|
#18+
Всем привет. Не получается решить часть задачи, с датами вообще не дружу и не могу найти нормального варианта, весь интернет раскопал, но ничего не нашел. может вы поможете. Буду очень благодарен! Задача состоит в том что нужно определить попадает ли SYSDATE в интервал между днем рождения - 2 дня и днем рождения + 3 дня. Вот что у меня получилось: Код: plsql 1. 2.
Но я не учел того что если день рождения будет, например, 31.12.1990, а SYSDATE будет 01.01.2021, то запрос не будет работать праввильно. Я думаю что все же не правильный подход выбрал для этой задачи. Если хотябы подскажете не много, буду благодарен! Заранее спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2021, 20:44 |
|
Интервал по дням рождения PL/SQL
|
|||
---|---|---|---|
#18+
sysdate between birth_date-2 and birth_date+3 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2021, 21:29 |
|
Интервал по дням рождения PL/SQL
|
|||
---|---|---|---|
#18+
Правильный Вася, К сожалению 10.05.2021 не войдет в интервал между 08.05.1990 и 14.05.1990 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2021, 21:42 |
|
Интервал по дням рождения PL/SQL
|
|||
---|---|---|---|
#18+
Вася Кропоткин, Код: plsql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2021, 22:05 |
|
Интервал по дням рождения PL/SQL
|
|||
---|---|---|---|
#18+
va_kochnev Вася Кропоткин, Код: plsql 1. 2. 3.
Вышеприведенный запрос показывает разницу в дня для ДР текущего календарного года. Если нужен ближай ДР (прошедший или будущий), то надо больше накрутить, найдя наименьшую разницу в днях для ДР текущего, прошлого и будущего годов: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
В реальном коде надо будет SYSDATE_ заменить на SYSDATE. Ну и, если речь именно про PL/SQL, то завести вспомогательные переменные, а не накручивать подзапросы, как в примере. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2021, 05:57 |
|
Интервал по дням рождения PL/SQL
|
|||
---|---|---|---|
#18+
Вася Кропоткин нужно определить попадает ли SYSDATE в интервал между днем рождения - 2 дня и днем рождения + 3 дня. Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2021, 08:11 |
|
Интервал по дням рождения PL/SQL
|
|||
---|---|---|---|
#18+
mRdUKE Вася Кропоткин нужно определить попадает ли SYSDATE в интервал между днем рождения - 2 дня и днем рождения + 3 дня. Код: sql 1.
Если ДР приходится на конец февраля/начало марта, то из-за "разновисокосности" года рождения и текущего года будет засада. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2021, 11:16 |
|
Интервал по дням рождения PL/SQL
|
|||
---|---|---|---|
#18+
Вася Кропоткин, если я правильно понял перефразирую день рождения был недавно(-2/+3 дня) даты без времени (trunc(sysdate)) Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
SYSDATBRRECENTLY10.05.202105.01.1962N10.05.202108.05.1990Y10.05.202117.06.2021N10.05.202118.06.2021N10.05.202120.06.2021N10.05.202123.06.2021N10.05.202124.06.2021N20.06.202105.01.1962N20.06.202108.05.1990N20.06.202117.06.2021N20.06.202118.06.2021Y20.06.202120.06.2021Y20.06.202123.06.2021Y20.06.202124.06.2021N ps если надо допилить/проверить переход ер, смена календаря, немовляты, секунды и тд ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2021, 22:20 |
|
Интервал по дням рождения PL/SQL
|
|||
---|---|---|---|
#18+
va_kochnev mRdUKE пропущено... Код: sql 1.
Если ДР приходится на конец февраля/начало марта, то из-за "разновисокосности" года рождения и текущего года будет засада. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2021, 22:37 |
|
Интервал по дням рождения PL/SQL
|
|||
---|---|---|---|
#18+
Всем спасибо за помощь! Но подошел вариант с формула вычисления дня рождения, ближайшего к искомой дате . Я видел его но почему-то не разобравшись посчитал что он не подходит. Скорее всего нужно было просто отвлечься от работы. Отдельное спасибо Elic. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2021, 10:50 |
|
Интервал по дням рождения PL/SQL
|
|||
---|---|---|---|
#18+
Как вариант: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2021, 11:22 |
|
|
start [/forum/topic.php?fid=52&fpage=17&tid=1880098]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
112ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
others: | 267ms |
total: | 457ms |
0 / 0 |