Используя Mysql, этот оператор работает:
SELECT *, ABS(UNIX_TIMESTAMP(time) -
UNIX_TIMESTAMP('2013-11-14 14:35:21') ) as diff from Alert
order by diff
limit 3
Но если я добавлю предложение where следующим образом, это даст ошибку «Неизвестный столбец« diff »в« предложении where »»
SELECT *, ABS(UNIX_TIMESTAMP(time) -
UNIX_TIMESTAMP('2013-11-14 14:35:21') ) as diff from Alert
where diff < 2
order by diff
limit 3
Хорошо, я изменяю оператор на использование предложения Have следующим образом:
SELECT *, ABS(UNIX_TIMESTAMP(time) -
UNIX_TIMESTAMP('2013-11-14 14:35:21') ) as diff from Alert
order by diff
having diff<2
Это все еще дает мне У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, на предмет правильного синтаксиса для использования рядом с «имея diff‹2» в строке 4.