Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
SQL, PL/SQL, T-SQL: запросы, DML DDL операторы, пакеты, процедуры, функции, триггеры и последовательности.
  • Страница:
  • 1

ТЕМА:

Вычитание дат в Oracle 12 года 9 мес. назад #2354

Имеется две даты некоторого периода.
Необходимо получить строку 'YY.MM.DD' (это не формат даты !!!), где YY - число лет в периоде,
ММ - число месяцев
DD - число дней
Т.е необходимо получить сколько было лет, месяцев и дней.
Например: ' 08.01.17' означает 8 лет, 1 месяц и 17 дней.
Как изящней решить эту задачу на PLSQL?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Вычитание дат в Oracle 12 года 9 мес. назад #2355

все просто
раскладываешь на составляюшие,
yy1=to_number(to_char(первая_дата,'yy')); -- лучше испльзовать 4 знака
mm1=to_number(to_char(первая_дата,'mm'));
dd1=to_number(to_char(первая_дата,'dd'));
потом тоже самое делаешь со второй датой и вычитаешь одно из другого по раздельности с учетом переноса и кол-вом дней в месяце и годе(это уже организационные вопросы)

PS. Даты следует читать 28.02.1999 - 29.02.2000 и 29.02.2000 - 28.02.2001.
я просмотрел какие есть функции для работы с датами и обнаружил MONTHS_BETWEEN, которая может существенно упростить мой алгоритм.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Вычитание дат в Oracle 12 года 8 мес. назад #3261

Olessa пишет: Имеется две даты некоторого периода.
Необходимо получить строку 'YY.MM.DD' (это не формат даты !!!), где YY - число лет в периоде,
ММ - число месяцев
DD - число дней
Т.е необходимо получить сколько было лет, месяцев и дней.
Например: ' 08.01.17' означает 8 лет, 1 месяц и 17 дней.
Как изящней решить эту задачу на PLSQL?

можно вот так dd1=to_number(to_char(первая_дата,'dd')); но если умеете писать )

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

  • Страница:
  • 1
Время создания страницы: 0.209 секунд