MySQL Date_add () добавляет время с 24 часов - PullRequest
0 голосов
/ 19 февраля 2020

Когда я добавляю новую запись в свой набор данных dabatase, метка с датой должна добавить 3 часа к минимальному значению, уже установленному в базе данных. Если минимальное значение: 2020-02-15 01: 58: 07 , то новый регистр должен быть: 2020-02-15 04: 58: 07

In Чтобы сделать это, я использую этот триггер:

CREATE TRIGGER image_demand BEFORE INSERT ON demand_img
FOR EACH ROW
BEGIN
    DECLARE done INT DEFAULT FALSE;
    DECLARE val DATE DEFAULT NULL;
    DECLARE minValue CURSOR FOR SELECT min(date_demand) AS RES FROM demand_img;
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; 

    OPEN minValue;
    read_loop : LOOP
        FETCH minValue INTO val;
        IF done THEN
            LEAVE read_loop;
        END IF;
    END LOOP;
    CLOSE minValue;
    IF val IS NOT NULL THEN
        SET NEW.date_demand = DATE_ADD(val, INTERVAL 3 HOUR);
    END IF;
END //

Но получается, что итоговая дата: 2020-02-15 03: 00: 00 Итак, кажется, что MySQL принимает только дневное значение и добавляет 3 часа с 00h. Возможная ключевая строка:

SET NEW.date_demand = DATE_ADD(val, INTERVAL 3 HOUR);

Что я могу сделать, чтобы это исправить?

Спасибо.

J.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...