Работа с датой и временем
Определение диапазонов
select e_id, birth_date from employee_per where birth_date BETWEEN '1969-01-01' AND '1974-01-01';
Результат запроса представлен на рис. 9.4.
Тот же запрос можно представить без конструкции BETWEEN:
select e_id, birth_date from employee_per where birth_date >= '1969-01-01' AND birth_date <= '1974-01-01';
Результат запроса будет аналогичен рис. 9.4.
Задания
- Вывести идентификаторы и даты рождения всех сотрудников, которые родились до 1965 г.
- Вывести идентификаторы и даты рождения сотрудников, родившихся между 1970 и 1973 гг.
Возможные решения
-
mysql> select e_id, birth_date -> from employee_per -> where birth_date <= '1964-12-31';
-
mysql> select e_id, birth_date -> from employee_per -> where birth_date >= '1970-01-01' -> and birth_date <= '1972-12-31';
Результат запроса представлен на рис. 9.5.
Использование Date для сортировки данных
select e_id, birth_date from employee_per ORDER BY birth_date;
Результат запроса представлен на рис. 9.6.
Выбор данных с помощью Date
Вот как можно выбрать сотрудников, которые родились в марте.
select e_id, birth_date from employee_per where MONTH(birth_date) = 3;
Результат запроса представлен на рис. 9.7.
Можно также использовать вместо чисел названия месяцев.
select e_id, birth_date from employee_per where MONTHNAME(birth_date) = 'January';
Результат запроса представлен на рис. 9.8.
Будьте внимательны при использовании названий месяцев, так как они различают регистр символов. Поэтому January будет работать, а JANUARY не будет!
Аналогично можно выбрать сотрудников, родившихся в определенный год или в определенный день.
select e_id, birth_date from employee_per where year(birth_date) = 1972;
Результат запроса представлен на рис. 9.9.
select e_id, birth_date from employee_per where DAYOFMONTH(birth_date) = 20;
Результат запроса представлен на рис. 9.10.