Задать вопрос
@nurzhannogerbek

Как правильно написать планировщик с счетчиком в MySQL?

Здравствуйте, товарищи! Помогите пожалуйста разобраться.

В базе данных MySQL есть таблица с названием "TABLE_MAIN". Мне нужно наполнять эту таблицу новыми данными каждый час из других таблиц ("TABLE_A" и "TABLE_B") на основе нижестоящего SQL запроса. В самом SQL запросе в зависимости от времени нужно обновлять передаваемое значение для A.TIME_KEY и B.MONTH_KEY. К примеру прошел час, запускать SQL запрос, но для A.TIME_KEY передать уже такое значение "2018-01-05 01:00:00". При этом значение для B.MONTH_KEY останется таким же. Значение в B.MONTH_KEY изменится лишь когда поменяется месяц. Например на такое значение 2018-02-01. Как правильно написать планировщик с таким вот счетчиком в MySQL?!

INSERT INTO TABLE_MAIN (
	ID,
	TIME_KEY,
	STATUS,
	OBJECT_NAME,
	OBJECT_DESCRIPTION
) VALUES (
	SELECT
		A.ID
		A.TIME_KEY
		A.STATUS
		B.OBJECT_NAME
		B.OBJECT_DESCRIPTION
	FROM 
		TABLE_A AS A
	INNER JOIN 
		TABLE_B AS B
	ON 
		A.ID = B.ID_OBJECT
	WHERE 
		A.TIME_KEY="2018-01-05 00:00:00"
	AND
		B.MONTH_KEY="2018-01-01"
);
  • Вопрос задан
  • 62 просмотра
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Lofem
Используйте текущую дату и округление.
dateadd(month ,datediff(month, 0, GETDATE( ) ), 0) вот это позволит округлить с точностью до дня месяца.
dateadd(hour ,datediff(hour, 0, GETDATE( ) ), 0) а это даст начало текущего часа.
Вместо нуля во всех местах можно использовать любую дату меньшую текущей(но везде одинаковую).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы