Опубликован: 16.01.2007 | Доступ: свободный | Студентов: 9685 / 2435 | Оценка: 4.33 / 4.16 | Длительность: 10:11:00
Лекция 9:

Работа с датой и временем

< Лекция 8 || Лекция 9: 1234 || Лекция 10 >

Текущие даты

Ранее мы видели, что текущую дату, месяц и год можно вывести с помощью аргумента CURRENT_DATE предложений DAYOFMONTH(), MONTH() и YEAR(), соответственно. То же самое можно использовать для выборки данных из таблиц.

select e_id, birth_date
from employee_per where
MONTH(birth_date) = MONTH(CURRENT_DATE);

Результат запроса представлен на рис. 9.11.

Поиск по текущему месяцу

Рис. 9.11. Поиск по текущему месяцу

Задания

  1. Вывести идентификаторы, даты рождения и адреса e-mail сотрудников, родившихся в апреле.
  2. Вывести идентификаторы, даты рождения и имена супругов сотрудников, родившихся в 1968 г., и отсортируйте записи на основе имен их супругов.
  3. Выведите идентификаторы сотрудников, родившихся в текущем месяце.
  4. Сколько в базе данных имеется уникальных годов рождения?
  5. Вывести список уникальных годов рождения и число сотрудников, родившихся в каждом таком году.
  6. Сколько сотрудников родились в каждом месяце? Выдача должна содержать названия месяцев (не номера), и записи должны быть упорядочены по убыванию по месяцам, начиная от наибольшего номера.

Возможные решения

  1. mysql> select e_id, birth_date, p_email
        -> from employee_per
        -> where month(birth_date) = 4;

    Результат запроса представлен на рис. 9.12.

    Сотрудники, родившиеся в апреле

    Рис. 9.12. Сотрудники, родившиеся в апреле

    или

    mysql> select e_id, birth_date, p_email
        -> from employee_per
        -> where MONTHNAME(birth_date) = 'April';

    Результат аналогичен рис. 9.12.

  2. mysql> select e_id, birth_date, s_name
        -> from employee_per where
        -> YEAR(birth_date) = 1968
        -> ORDER BY s_name;

    Результат запроса представлен на рис. 9.13.

    Сотрудники 1968 года рождения, с сортировкой по именам

    Рис. 9.13. Сотрудники 1968 года рождения, с сортировкой по именам

    Примечание: Значение NULL показано в самом верху. Более подробно значение NULL будет рассмотрено ниже.

  3. mysql> select e_id from employee_per
        -> where month(birth_date) = month(current_date);

    Результат запроса представлен на рис. 9.14.

    Сотрудники родившиеся в этом месяце

    Рис. 9.14. Сотрудники родившиеся в этом месяце
  4. mysql> select distinct year(birth_date) from employee_per;

    Результат запроса представлен на рис. 9.15.

    Уникальные годы рождения

    Рис. 9.15. Уникальные годы рождения
  5. mysql> select year(birth_date) as Year,
        -> count(*) from employee_per
        -> GROUP BY Year;

    Результат запроса представлен на рис. 9.16.

    Количество сотрудников, родившихся в каждом году

    Рис. 9.16. Количество сотрудников, родившихся в каждом году
  6. mysql> select MONTHNAME(birth_date) AS Month,
        -> count(*) AS Number
        -> from employee_per
        -> GROUP BY Month
        -> ORDER BY Number DESC;

    Результат запроса представлен на рис. 9.17.

    Количество сотрудников, родившихся в каждом месяце

    Рис. 9.17. Количество сотрудников, родившихся в каждом месяце
< Лекция 8 || Лекция 9: 1234 || Лекция 10 >
Александра Каева
Александра Каева
Диляра Кенжебай
Диляра Кенжебай