Диапазон дат - MySQL

Узнай цену своей работы

Формулировка задачи:

Всем привет! Допустим у нас есть таблица
users(
u_id INT PRIMARY KEY,
u_name VARCHAR(20),
u_birthday DATA
)
SET @ONE = 3;
SET @TWO = 10;
Написать запрос,который выбирает день рождения пользователей в промежутке от -@ONE до +@TWO дней от текущей даты. мой вариант:
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)

Объяснение кода листинга программы

  1. DATEA_ADD(NOW(), INTERVAL -@ONE DAY) - функция DATEA_ADD добавляет к текущей дате указанное количество дней (в данном случае -1 день) и возвращает новую дату.
  2. DATEA_ADD(NOW(), INTERVAL +@TWO DAY) - функция DATEA_ADD добавляет к текущей дате указанное количество дней (+2 дня) и возвращает новую дату.
  3. BETWEEN DATEA_ADD(NOW(), INTERVAL -@ONE DAY) AND DATEA_ADD(NOW(), INTERVAL +@TWO DAY) - в данном контексте оператор BETWEEN используется для указания диапазона дат. То есть, результат выражения будет истинным, если значение переменной будет находиться между датами, полученными с помощью функций DATEA_ADD. В данном случае, это означает, что диапазон дат будет включать текущую дату, а также две даты, отстоящие от нее на один и два дня соответственно.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.417 из 5