Диапазон дат - MySQL
Формулировка задачи:
Всем привет!
Допустим у нас есть таблица
Написать запрос,который выбирает день рождения пользователей в промежутке от -@ONE до +@TWO дней от текущей даты.
мой вариант:
но он чёт не робит((
users( u_id INT PRIMARY KEY, u_name VARCHAR(20), u_birthday DATA ) SET @ONE = 3; SET @TWO = 10;
SELECT u_name FROM users WHERE u_birthday BETWEEN (DATA(NOW()) - @ONE) AND (DATA(NOW()) - @TWO );
Решение задачи: «Диапазон дат»
textual
Листинг программы
BETWEEN DATEA_ADD(NOW(), INTERVAL -@ONE DAY) AND DATEA_ADD(NOW(), INTERVAL +@TWO DAY)
Объяснение кода листинга программы
DATEA_ADD(NOW(), INTERVAL -@ONE DAY)- функцияDATEA_ADDдобавляет к текущей дате указанное количество дней (в данном случае -1 день) и возвращает новую дату.DATEA_ADD(NOW(), INTERVAL +@TWO DAY)- функцияDATEA_ADDдобавляет к текущей дате указанное количество дней (+2 дня) и возвращает новую дату.BETWEEN DATEA_ADD(NOW(), INTERVAL -@ONE DAY) AND DATEA_ADD(NOW(), INTERVAL +@TWO DAY)- в данном контексте операторBETWEENиспользуется для указания диапазона дат. То есть, результат выражения будет истинным, если значение переменной будет находиться между датами, полученными с помощью функцийDATEA_ADD. В данном случае, это означает, что диапазон дат будет включать текущую дату, а также две даты, отстоящие от нее на один и два дня соответственно.