MySQL бросили как интервал - PullRequest
       7

MySQL бросили как интервал

1 голос
/ 22 сентября 2011

возможно ли преобразовать интервал в MySQL?

Я хочу оценить значение из запроса как интервал, например:

select DATE_SUB(NOW(),CAST(user.expiry_interval AS interval))

, где user.expiry_interval is«ИНТЕРВАЛ 1 НЕДЕЛЯ» или что-то в этом роде

select DATE_SUB(NOW(),CAST('INTERVAL 1 week' AS INTERVAL))

1 Ответ

3 голосов
/ 22 сентября 2011

INTERVAL - это не тип данных , а ключевое слово , которое преобразует понятную человеку строку «длительность» в целое число.Таким образом, «приведение к INTERVAL» не имеет смысла.

Если ваш «интервальный» ввод является переменным, это может сработать, но вы не можете взять всю вещь из строки больше, чем можете«приведите» строку "SELECT * FROM tbl" в выражение запроса.Вы можете использовать переменную для числового операнда (см. Ниже), но я думаю, что это так.

SELECT DATE_SUB(NOW(), INTERVAL `x` DAY) FROM `tbl`;

Вам придется прибегнуть к CASE, если вы хотите, чтобы логика была сильнее этой.Или ... хранить целочисленные длительности в первую очередь.

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