Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как получить количество оставшихся минут до 20:00 текущего дня / 19 сообщений из 19, страница 1 из 1
11.12.2016, 13:28
    #39364360
sys user
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить количество оставшихся минут до 20:00 текущего дня
был написан корявый запрос но выдающий правильное решение.
Код: 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
11.12.2016, 13:46
    #39364366
Alexls
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить количество оставшихся минут до 20:00 текущего дня
sys user,

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

не совсем понял. это как ?? можно подробнее
...
Рейтинг: 0 / 0
11.12.2016, 14:26
    #39364375
Vyatich
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить количество оставшихся минут до 20:00 текущего дня
sys user,
Код: plsql
1.
select floor((trunc(sysdate) + 1/24*20 - sysdate)*24*60) from dual;
...
Рейтинг: 0 / 0
11.12.2016, 16:59
    #39364431
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить количество оставшихся минут до 20:00 текущего дня
А если сегодня уже 20:15, какие минуты и до чего считаем?
...
Рейтинг: 0 / 0
11.12.2016, 17:43
    #39364454
sys user
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить количество оставшихся минут до 20:00 текущего дня
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
11.12.2016, 17:45
    #39364458
sys user
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить количество оставшихся минут до 20:00 текущего дня
andreymx, тоже самое только время будет получаться отрицательным т.к. от меньшего большее вычитаем
...
Рейтинг: 0 / 0
11.12.2016, 18:31
    #39364467
Vyatich
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить количество оставшихся минут до 20:00 текущего дня
Код: plsql
1.
select floor((trunc(sysdate) + TO_DSINTERVAL('0 21:15:45.5') - sysdate)*24*60) from dual;
...
Рейтинг: 0 / 0
11.12.2016, 18:33
    #39364469
sys user
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить количество оставшихся минут до 20:00 текущего дня
Vyatich
Код: plsql
1.
select floor((trunc(sysdate) + TO_DSINTERVAL('0 21:15:45.5') - sysdate)*24*60) from dual;



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

Код: plsql
1.
select floor((trunc(sysdate) + TO_DSINTERVAL('0 20:00:00') - sysdate)*24*60) from dual;
...
Рейтинг: 0 / 0
11.12.2016, 18:57
    #39364475
sys user
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить количество оставшихся минут до 20:00 текущего дня
Vyatich,
да время я понял что менять можно))) интересно что за ноль)) спасибо) спрошу у яндекса
...
Рейтинг: 0 / 0
11.12.2016, 19:02
    #39364477
Как получить количество оставшихся минут до 20:00 текущего дня
Код: 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
11.12.2016, 19:06
    #39364478
Vyatich
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить количество оставшихся минут до 20:00 текущего дня
sys userVyatich,
да время я понял что менять можно)))
ну хоть что-то понял
sys userинтересно что за ноль)) спасибо) спрошу у яндекса
RTFM
...
Рейтинг: 0 / 0
11.12.2016, 19:08
    #39364480
Как получить количество оставшихся минут до 20:00 текущего дня
можно обойтись одним экстрактом
Код: plsql
1.
extract(second from (time '20:00:00' - cast(t as time))/3600)*60
...
Рейтинг: 0 / 0
11.12.2016, 19:28
    #39364483
sys user
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить количество оставшихся минут до 20:00 текущего дня
сшанская зона, в Oracle нет типа time там date который содержит и дату и время. если я конечно не ошибаюсь
...
Рейтинг: 0 / 0
11.12.2016, 22:30
    #39364545
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить количество оставшихся минут до 20:00 текущего дня
sys userв Oracle нет типа time

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

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

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

двойное неявное преобразование в тамстамп и обратно. предыдущий с +1/24 в этом смысле гуманнее.
...
Рейтинг: 0 / 0
14.12.2016, 02:46
    #39366326
Xdredd.vl
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить количество оставшихся минут до 20:00 текущего дня
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
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как получить количество оставшихся минут до 20:00 текущего дня / 19 сообщений из 19, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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