Опубликован: 16.01.2007 | Уровень: для всех | Доступ: свободно
Лекция 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 >
Александра Каева
Александра Каева
Здравствуйте! Студент ВУЗа может пройти проф.переподготовку и получить официальный документ?
Диляра Кенжебай
Диляра Кенжебай
для чего предназначены схемы баз данных?
Анатолий Федоров
Анатолий Федоров
Россия, Москва, Московский государственный университет им. М. В. Ломоносова, 1989
Сергей Пантелеев
Сергей Пантелеев
Россия, Москва