|
Получить разницу в датах в днях
|
|||
---|---|---|---|
#18+
Добрый день, подскажите, мне нужно анализировать разницу в двух дата в днях, в частности сравнивать полученную дату с указанным числом дней (например с 1 (один день), 2 (два дня) и т.д.). Исходные даты в формате dd.mm.yyyy hh24:mi Как в Oracle лучше это сделать: Код: plsql 1.
На выходе 1,00069444444444 В итоге как данную дату сравнить скажем с одним днем? round применить ? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2021, 13:11 |
|
Получить разницу в датах в днях
|
|||
---|---|---|---|
#18+
wsnet, 1,00069444444444 - ето и есть в днях, 1 день и чутку (0.000694444*24*60=1 мин. ) ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2021, 14:36 |
|
Получить разницу в датах в днях
|
|||
---|---|---|---|
#18+
Stax, не могли бы вы подсказать можно ли как-то сократить код запроса Код: plsql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2021, 17:41 |
|
Получить разницу в датах в днях
|
|||
---|---|---|---|
#18+
wsnet, а логику какую преследуете? если между двумя датами меньше суток, то 0, а если больше, то сразу плюс день? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2021, 17:57 |
|
Получить разницу в датах в днях
|
|||
---|---|---|---|
#18+
j2k, да именно так ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2021, 18:37 |
|
Получить разницу в датах в днях
|
|||
---|---|---|---|
#18+
wsnet Stax, не могли бы вы подсказать можно ли как-то сократить код запроса Код: plsql 1. 2. 3. 4.
j2k: wsnet, а логику какую преследуете? если между двумя датами меньше суток, то 0, а если больше, то сразу плюс день? wsnet: j2k, да именно так По-моему проще и понятнее будет вот так: Код: plsql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2021, 18:50 |
|
Получить разницу в датах в днях
|
|||
---|---|---|---|
#18+
wsnet, если разница ровно ххх дней, тож 1 добавлять? ps Код: plsql 1. 2. 3. 4. 5. 6.
..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2021, 08:42 |
|
Получить разницу в датах в днях
|
|||
---|---|---|---|
#18+
Stax, да тоже 1 добавить. В продолжении темы, не могли бы вы указать, почему данные запросы носят разные результаты количества дней: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2021, 08:50 |
|
Получить разницу в датах в днях
|
|||
---|---|---|---|
#18+
to_date(d date) - получаем неявное преобразование. Если date, то to_char. Если char, то to_date. Код: 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. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2021, 09:08 |
|
Получить разницу в датах в днях
|
|||
---|---|---|---|
#18+
to_date(date type) сначала date type по своему разуму переводит в to_char, а потом уже для него делает to_date по формату. Код: sql 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. 28. 29. 30. 31.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2021, 09:20 |
|
Получить разницу в датах в днях
|
|||
---|---|---|---|
#18+
serpv to_date(date type) сначала date type по своему разуму переводит в to_char, а потом уже для него делает to_date по формату. Код: sql 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. 28. 29. 30. 31.
То есть как понять по своему разуму? Или все зависит от NLS_DATE_FORMAT ? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2021, 10:40 |
|
Получить разницу в датах в днях
|
|||
---|---|---|---|
#18+
wsnet, У Вас поле в таблице имеет тип date (не строка) применять ф-цию to_date не надо разница считается date2-date1 (без to_date) у ф-ции to_date 1-й параметр строка происходит неявное преобразование date в varchar2(строку) с учетом NLS_DATE_FORMAT можно такой формат задать, что to_date вообще будет слетать с ошибкой ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2021, 10:58 |
|
Получить разницу в датах в днях
|
|||
---|---|---|---|
#18+
Stax wsnet, У Вас поле в таблице имеет тип date (не строка) применять ф-цию to_date не надо разница считается date2-date1 (без to_date) у ф-ции to_date 1-й параметр строка происходит неявное преобразование date в varchar2(строку) с учетом NLS_DATE_FORMAT можно такой формат задать, что to_date вообще будет слетать с ошибкой ..... stax Огромное спасибо за пояснения! ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2021, 17:41 |
|
|
start [/forum/topic.php?desktop=1&fid=52&tid=1879846]: |
0ms |
get settings: |
16ms |
get forum list: |
9ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
37ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
310ms |
get tp. blocked users: |
1ms |
others: | 2325ms |
total: | 2707ms |
0 / 0 |