Используя MariaDB 5.5 (наша база данных cdr asterisk) и пытаясь построить временной ряд по дате из существующих данных в базе данных, но хотите присоединиться к столбцу всех дат, чтобы учесть дни без данных. Следующий запрос (упрощенный) работает в MySQL Workbench, чтобы получить список всех дат за последние 180 дней, но в графане я получаю синтаксическую ошибку.
SET @i = -1;
SELECT DATE(DATE_ADD(DATE_ADD(CURRENT_DATE(), INTERVAL -180 DAY), INTERVAL @i:=@i+1 DAY)) AS date
FROM queuestats
HAVING
@i < DATEDIFF(CURRENT_DATE(), DATE_ADD(CURRENT_DATE(), INTERVAL -180 DAY))
;
Я получаю сообщение об ошибке: следующим образом:
Ошибка 1064: в синтаксисе SQL возникла ошибка; проверьте руководство, соответствующее вашей версии сервера MariaDB, на предмет правильного синтаксиса для использования рядом с 'SELECT DATE (DATE_ADD (DATE_ADD (CURRENT_DATE (), INTERVAL -180 DAY), INTERVAL @i: = @' в строке 3
* 1008) *
Кажется, что возникает проблема с ключевым словом 'SET', так как я не получаю ошибок, но также не возвращаю данные, если я просто удаляю первую строку из запроса. Я протестировал этот синтаксис для обоих этих MariaDB, и отдельная база данных MySQL, и происходит то же самое. Чтобы упростить еще больше, я получаю ту же ошибку даже со следующим запросом:
SET @i = -1;
SELECT CURRENT_DATE() AS time;
Кто-нибудь имеет какое-либо представление о том, почему графана не ' Вам нравится ключевое слово SET? Или как получить список дат между двумя датами без использования переменной?
Заранее спасибо.