В MySQL как правильно записать TimeStamp=Timestamp + DateTime

140
28 сентября 2021, 02:50

В хранимой процедуре MySQL есть две переменные. В одной хранится в формате TimeStamp время регистрации,например '2020-01-15 14:30:33'. В другой переменной хранится интервал в формате DateTime, например 3 месяца '0000-03-00'. Нужно к дате прибавить интервал. Я это делал так

SET FinishTime=FinishTime+TimeRange;

Выражение работало для TimeRange, кратных 1, например для одного месяца '0000-01-00' Но в общем случае FinishTime возвращал в таблицу нулевые значения в результате некорректного выполнения операции. В MySQL для этого есть функции сложения даты/времени, но конкретно к моей ситуации я не знаю как их приспособить, не хватает опыта.

Answer 1

Я написал вот такое решение. Оно очень громоздкое, но работает

BEGIN
DECLARE Time1 DATETIME;
Declare TimeRange DATETIME;
SET Time1='2020-01-01';
SET TimeRange='0000-03-02';
SELECT Time1 + INTERVAL MONTH(TimeRange) MONTH + INTERVAL DAY(TimeRange) DAY + INTERVAL YEAR(TimeRange) YEAR;
END

Время прибавляет правильно

READ ALSO
Вопрос по связи триггера и базы данных

Вопрос по связи триггера и базы данных

Есть вот такая скромная бд:

193
Посоветуйте базу данных для хранения больших таблиц

Посоветуйте базу данных для хранения больших таблиц

Какая бд лучше справиться с хранением больших таблиц, +30-50GИз вариантов MySQL 8

188
БД SQL запрос join

БД SQL запрос join

Всем привет!

140
Забить память по максимуму

Забить память по максимуму

Вопрос: Возможно ли как-то указать в sql запросе модерируемый объем памяти? Предположим есть большая база данных, а у меня всего 4 гб свободной...

253