Есть такая задача выбрать покупателей, у которых возраст от 10 до 50 лет? Для решения задачи написал такой скрипт
SELECT pokupatel FROM humans WHERE date_rojdenia BETWEEN 10 and 50;
но проблема в том, что поле date_rojdenia хранит значения в unixtime и в тоге у меня выводится совсем не то, подскажите как решить проблему?
10 лет назад:
DATE_SUB(NOW(), INTERVAL 10 YEAR)
50 лет назад:
DATE_SUB(NOW(), INTERVAL 50 YEAR)
Получается так:
SELECT pokupatel FROM humans WHERE date_rojdenia
BETWEEN DATE_SUB(NOW(), INTERVAL 50 YEAR)
and DATE_SUB(NOW(), INTERVAL 10 YEAR);
Проблему с временной меткой решил так, может кому-нибудь пригодится
SELECT pokupatel FROM humans WHERE date_rojdenia
BETWEEN UNIX_TIMESTAMP(NOW() - INTERVAL 50 YEAR) and UNIX_TIMESTAMP(NOW() - INTERVAL 10 YEAR);
Сборка персонального компьютера от Artline: умный выбор для современных пользователей