Диапазон дат - 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
. В данном случае, это означает, что диапазон дат будет включать текущую дату, а также две даты, отстоящие от нее на один и два дня соответственно.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д