powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Вычитание дат
15 сообщений из 15, страница 1 из 1
Вычитание дат
    #39554251
boris_borisych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пишу вот такой скрипт:

declare
i TIMESTAMP;
execution_time TIMESTAMP;
begin
execution_time:=sysdate;
execution_time:=execution_time-sysdate;
DBMS_OUTPUT.PUT_LINE(to_char(execution_time,'dd.mm.yyyy hh24:mi:ss'));
end;

а он мне выдает ошибку - exception is of wrong type

Как вычесть одну дату из другой?
...
Рейтинг: 0 / 0
Вычитание дат
    #39554253
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
boris_borisych,

если от вторника отнимать понедельник, какой тип результата ты ожидаешь получить?
...
Рейтинг: 0 / 0
Вычитание дат
    #39554265
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
boris_borisychа он мне выдает ошибку - exception is of wrong typeНе рано ли тебе профилировать?
...
Рейтинг: 0 / 0
Вычитание дат
    #39554270
boris_borisych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Судя по ошибке - неверный тип, попробовал вот так:

declare
execution_time date;
begin
execution_time:=sysdate;
execution_time:=execution_time-sysdate;
DBMS_OUTPUT.PUT_LINE(to_char(execution_time,'dd.mm.yyyy hh24:mi:ss'));
end;

и все равно та же ошибка, хотя тут теперь оба значения даты
...
Рейтинг: 0 / 0
Вычитание дат
    #39554274
boris_borisych,

Разница, что таймстампов, что дат, отнюдь не таймстамп или дата. Читай SQL Reference, там есть табличка.
...
Рейтинг: 0 / 0
Вычитание дат
    #39554276
Фотография Есть вопрос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
boris_borisych,

Разница дат является числом.
...
Рейтинг: 0 / 0
Вычитание дат
    #39554278
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Вычитание дат
    #39554289
boris_borisych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть вопрос,

спасибо
...
Рейтинг: 0 / 0
Вычитание дат
    #39554457
boris_borisych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть вопрос,

Если это число, то я пытаюсь выполнить следующий скрипт:

select sysdate - (sysdate-0.1) from dual

и он выводит 0.1

Что это значит в данном случае?
...
Рейтинг: 0 / 0
Вычитание дат
    #39554464
boris_borisychЕсть вопрос,

Если это число, то я пытаюсь выполнить следующий скрипт:

select sysdate - (sysdate-0.1) from dual

и он выводит 0.1

Что это значит в данном случае?

одна десятая суток. читай доку
...
Рейтинг: 0 / 0
Вычитание дат
    #39554476
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
boris_borisych,

в селекте sysdate "выполняется раз"
у Вас получилось s-(s-0.1)=s-s+0.1=0.1 (десятая часть сутки, примерно 02:24 часа)

....
stax
...
Рейтинг: 0 / 0
Вычитание дат
    #39554480
Staxпримерно 02:24 часа

не примерно, а точно
...
Рейтинг: 0 / 0
Вычитание дат
    #39554499
скрупулёзный самаритянинStaxпримерно 02:24 часане примерно, а точноЛюди бегают туда-сюда по планете и астрономические сутки нестабильны. Поэтому фактическую продолжительность суток периодически корректируют. Например, последняя сутка 2016 года имела продолжительность на секунду больше - 86401.
...
Рейтинг: 0 / 0
Вычитание дат
    #39554624
прыжковый второйскрупулёзный самаритянинпропущено...
не примерно, а точноЛюди бегают туда-сюда по планете и астрономические сутки нестабильны. Поэтому фактическую продолжительность суток периодически корректируют. Например, последняя сутка 2016 года имела продолжительность на секунду больше - 86401.
мы ведём речь не об астраномическом состоянии, а о системе координат, коя включает в сутки ровно 24 часа и не секундой больше, в часе ровно 60 минут и не секундой больше.
С этой точки зрения 1/10 суток всегда 2 часа и 24 минуты.
Для компенсации отличия суммы суток от длительности года служит 29 февраля.
Оракл оперирует не астрономическими измерениями, а моделями различных рас и вероисповеданий, взяв за равенсто единице ровно одни сутки. Поэтому 1/10 в формате даты оракла - это точно 2 часа и 24 минуты. А то, что в году на 1 секунду больше было - не важно. Год все равно посчитался, как кол-во суток без добавления секунд, поэтому 2016-й год в моделировании оракла на 1 секунду меньше астрономического, но зато кошерен сам в себе и независим от флуктуаций планет, светил и неграмотных гребенщиковых.
...
Рейтинг: 0 / 0
Вычитание дат
    #39554759
Фотография Vladimir Filin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
boris_borisychПишу вот такой скрипт:

declare
i TIMESTAMP;
execution_time TIMESTAMP;
begin
execution_time:=sysdate;
....
для очень-очень быстрых скриптов:
execution_time:=systimestamp;
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Вычитание дат
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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