Хранимая процедура для вставки 1-й даты в дату окончания текущего месяца - PullRequest
0 голосов
/ 15 октября 2019

Я уже некоторое время пытаюсь разобраться с этим, и я добился некоторого прогресса в поиске вставки оставшихся дней с сегодняшнего дня до конца месяца, но мне не повезло, чтобы выяснить,как сделать так, чтобы @start_date выбирал с начала текущего месяца. Хранимая процедура выглядит следующим образом:

    BEGIN 
    SET @start_date = NOW(); 
    SET @end_date = DATE_ADD(NOW(), INTERVAL 30 DAY); 
    WHILE(@start_date< @end_date) DO 
        INSERT INTO date (date) VALUES (@start_date); 
        SET @start_date = DATE_ADD(@start_date, INTERVAL 1 DAY); 
    END WHILE; 
END

Я надеюсь получить некоторое объяснение того, что мне нужно заменить значением NOW (), чтобы сделать его таким, чтобы оно динамически извлекало началодата текущего месяца? Конечно, жесткое кодирование даты работает, но поскольку эта хранимая процедура предназначена для ежемесячной рутины, жесткое кодирование не является наилучшим применимым сценарием. Заранее спасибо!

1 Ответ

0 голосов
/ 15 октября 2019

Исправлено! Для тех, у кого есть такая же проблема или что-то в этом роде, вот мое решение.

BEGIN 
    SET @start_date = DATE_SUB(LAST_DAY(NOW()),INTERVAL DAY(LAST_DAY(NOW()))-1 DAY); 
    SET @end_date = DATE_FORMAT(CURDATE() + INTERVAL 1 MONTH,'%Y-%m-01');  
    WHILE(@start_date < @end_date) DO 
        INSERT INTO date (date) VALUES (@start_date); 
        SET @start_date = DATE_ADD(@start_date, INTERVAL 1 DAY); 
    END WHILE; 
END
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...