2013-09-13 2 views
1

Я хотел бы сделать динамический псевдоним из дат, как вы можете сидеть ниже. Каждый день будет имя столбца разным. Я пробовал это с переменной, но это не работает. Решение должно быть чем-то вроде ниже или если мне не нужно использовать переменные, это также возможно.Динамический псевдоним с даты в MySQL

SET @today = CURRENT_DATE(), 
    @lastWeek = DATE_ADD(CURRENT_DATE(),INTERVAL -7 DAY); 

SELECT date1 AS @today, date2 AS @lastweek FROM table1; 

Спасибо за вашу помощь

+0

Вы пробовали 'ГОТОВИТ STMT'? – jaczes

ответ

1

Посмотрите this. Я думаю, это то, что вам нужно.

Так что вы можете сделать:

SET @today = CURRENT_DATE(), 
    @lastWeek = DATE_ADD(CURRENT_DATE(),INTERVAL -7 DAY), 
    @sql = concat('SELECT date1 AS "', @today, '", date2 AS "', @lastweek, '" FROM table1'); 

PREPARE stmt FROM @sql; 
EXECUTE stmt; 
DEALLOCATE PREPARE stmt; 
+0

Я пробовал, но, возможно, у вас есть две ошибки. Один находится во второй строке, в конце должна быть запятая. И в функции concat я думаю, что должен быть апостроф перед оператором SELECT и в конце после FROM table1. После этих исправлений это работает. – Bushwacka

+0

Ах, извините за ошибки (исправил их), спешил, но я рад, что это сработало для вас. – mhafellner

Смежные вопросы