powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как получить количество оставшихся минут до 20:00 текущего дня
19 сообщений из 19, страница 1 из 1
Как получить количество оставшихся минут до 20:00 текущего дня
    #39364360
sys user
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
был написан корявый запрос но выдающий правильное решение.
Код: plsql
1.
2.
3.
 select round((TO_DATE(to_char(sysdate,'dd.mm.yyyy') || '20:00:00', 'dd.mm.yyyy hh24:mi:ss')
        -to_date(to_char(sysdate, 'dd.mm.yyyy hh24:mi:ss'),'dd.mm.yyyy hh24:mi:ss'))*24*60) as minut
  from dual;


как написать запрос более правильно(без переводов то в строку то в дату)? не могу ни чего придумать. подскажите пожалуйста)
...
Рейтинг: 0 / 0
Как получить количество оставшихся минут до 20:00 текущего дня
    #39364366
Alexls
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sys user,

Как минимум sysdate можно не оборачивать
...
Рейтинг: 0 / 0
Как получить количество оставшихся минут до 20:00 текущего дня
    #39364371
sys user
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alexls,

не совсем понял. это как ?? можно подробнее
...
Рейтинг: 0 / 0
Как получить количество оставшихся минут до 20:00 текущего дня
    #39364375
Фотография Vyatich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sys user,
Код: plsql
1.
select floor((trunc(sysdate) + 1/24*20 - sysdate)*24*60) from dual;
...
Рейтинг: 0 / 0
Как получить количество оставшихся минут до 20:00 текущего дня
    #39364431
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если сегодня уже 20:15, какие минуты и до чего считаем?
...
Рейтинг: 0 / 0
Как получить количество оставшихся минут до 20:00 текущего дня
    #39364454
sys user
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vyatichsys user,
Код: plsql
1.
select floor((trunc(sysdate) + 1/24*20 - sysdate)*24*60) from dual;



а можно как то сделать что бы время которое мы задаем задавалось более форматно? ну тоесть "20:00", "21:40"?
просто можно умножать и на 21.5 (21:30) но все же хотелось бы более элегантно
...
Рейтинг: 0 / 0
Как получить количество оставшихся минут до 20:00 текущего дня
    #39364458
sys user
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
andreymx, тоже самое только время будет получаться отрицательным т.к. от меньшего большее вычитаем
...
Рейтинг: 0 / 0
Как получить количество оставшихся минут до 20:00 текущего дня
    #39364467
Фотография Vyatich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
select floor((trunc(sysdate) + TO_DSINTERVAL('0 21:15:45.5') - sysdate)*24*60) from dual;
...
Рейтинг: 0 / 0
Как получить количество оставшихся минут до 20:00 текущего дня
    #39364469
sys user
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vyatich
Код: plsql
1.
select floor((trunc(sysdate) + TO_DSINTERVAL('0 21:15:45.5') - sysdate)*24*60) from dual;



Что за за ноль перед временем и что за дробь в секундах? это зачем?
...
Рейтинг: 0 / 0
Как получить количество оставшихся минут до 20:00 текущего дня
    #39364474
Фотография Vyatich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sys user,
RTFM

Код: plsql
1.
select floor((trunc(sysdate) + TO_DSINTERVAL('0 20:00:00') - sysdate)*24*60) from dual;
...
Рейтинг: 0 / 0
Как получить количество оставшихся минут до 20:00 текущего дня
    #39364475
sys user
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vyatich,
да время я понял что менять можно))) интересно что за ноль)) спасибо) спрошу у яндекса
...
Рейтинг: 0 / 0
Как получить количество оставшихся минут до 20:00 текущего дня
    #39364477
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
select t,
       extract(hour   from time '20:00:00' - cast(t as time))*60
     + extract(minute from time '20:00:00' - cast(t as time))
     + round(extract(second from time '20:00:00' - cast(t as time))/60) mi
from (select systimestamp t from dual);

T                                   MI
----------------------------------- ---
11-DEC-16 07.58.28.267572 AM -08:00 722
...
Рейтинг: 0 / 0
Как получить количество оставшихся минут до 20:00 текущего дня
    #39364478
Фотография Vyatich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sys userVyatich,
да время я понял что менять можно)))
ну хоть что-то понял
sys userинтересно что за ноль)) спасибо) спрошу у яндекса
RTFM
...
Рейтинг: 0 / 0
Как получить количество оставшихся минут до 20:00 текущего дня
    #39364480
можно обойтись одним экстрактом
Код: plsql
1.
extract(second from (time '20:00:00' - cast(t as time))/3600)*60
...
Рейтинг: 0 / 0
Как получить количество оставшихся минут до 20:00 текущего дня
    #39364483
sys user
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сшанская зона, в Oracle нет типа time там date который содержит и дату и время. если я конечно не ошибаюсь
...
Рейтинг: 0 / 0
Как получить количество оставшихся минут до 20:00 текущего дня
    #39364545
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sys userв Oracle нет типа time

Есть, но он не документирован так-что на боевой базе чревато.

SY.
...
Рейтинг: 0 / 0
Как получить количество оставшихся минут до 20:00 текущего дня
    #39364567
sys user
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vyatichsys userVyatich,
да время я понял что менять можно)))
ну хоть что-то понял
sys userинтересно что за ноль)) спасибо) спрошу у яндекса
RTFM

сам в шоке
...
Рейтинг: 0 / 0
Как получить количество оставшихся минут до 20:00 текущего дня
    #39364583
Vyatich
Код: plsql
1.
select floor((trunc(sysdate) + TO_DSINTERVAL('0 20:00:00') - sysdate)*24*60) from dual;

двойное неявное преобразование в тамстамп и обратно. предыдущий с +1/24 в этом смысле гуманнее.
...
Рейтинг: 0 / 0
Как получить количество оставшихся минут до 20:00 текущего дня
    #39366326
Xdredd.vl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IMHO самое простое и наглядное решение вот такое:
Код: plsql
1.
2.
3.
select 20 * 60/*Количество минут до 20:00*/ -
	floor(to_number(to_char(trunc(sysdate, 'mi'), 'SSSSS'/*Кол-во секунд от начала суток*/)) / 60) res
from dual
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как получить количество оставшихся минут до 20:00 текущего дня
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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