я сделал INSERT INTO
данных из таблицы импорта в новую таблицу, я создал, который имеет общую информацию о людях, имя, адрес, DOB, возраст, пол и т.д.SQL обновление возраст, когда = текущая дата
Когда я сделал вставку в мои новые таблицы, данные импорта не имеют возраст для людей, так что я сделал следующее послеINSERT INTO
:
UPDATE table_a set age = (SELECT timestampdiff(year, dob, curdate()) AS age);
, который моментально дал мне возраст каждого и обновил столбец соответственно.
Теперь я хочу знать, кто свой день рождения на основе текущей даты:
SELECT name, dob FROM table_a WHERE DAYOFYEAR(dob) - DAYOFYEAR(CURDATE()) = 0;
Мой вопрос: Как я могу сделать обновление на основе, когда их д.р. = текущая дата?
Это то, что я пробовал:
UPDATE table_a set age = (SELECT timestampdiff(year, dob, curdate()) AS age WHERE DAYOFYEAR(dob) - DAYOFYEAR(CURDATE()) = 0);
Это ошибка, я получаю:
Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE DAYOFYEAR(dob) - DAYOFYEAR(CURDATE()) = 0)' at line 1
Я не понимаю, что я делаю неправильно ...
Запуск MySQL 5.6.25
Благодарим вас за любые ответы.
Попробуйте удалить 'AS Age' – artm
Поскольку возраст постоянно меняется, вы, вероятно, не хотите хранить его в базе данных, а скорее вычисляете его, когда вам нужно знать возраст. В противном случае вам придется обновлять его каждый день, чтобы он был точным. – jpw
Я занимаюсь этим с помощью php, и у меня есть это, где, если они, ищут человека, он проверит чек, чтобы узнать, что у них есть, и ЕСЛИ его сегодня, обновите возраст в этот момент. Но, да, я вижу вашу мысль. – devNub