Работа с датой и временем
Работа с датой
До сих пор мы имели дело с текстом ( varchar ) и числами ( int ). Чтобы понять тип данных date (дата) создадим еще одну таблицу, аналогично тому, как была создана первая таблица.
Создадим в текстовом редакторе файл employee_per.dat, который содержит оператор создания таблицы CREATE следующего вида:
CREATE TABLE employee_per ( e_id int unsigned not null primary key, -- идентификационный номер address varchar(60), -- адрес phone int, -- номер телефона p_email varchar(60), -- адрес e-mail birth_date DATE, -- дата рождения sex ENUM('M', 'F'), -- пол m_status ENUM('Y','N'), -- статус s_name varchar(40), -- имя children int); -- количество детей
и последовательность операторов INSERT, например, такого вида. Количество записей может быть произвольно.
INSERT INTO employee_per (e_id, address, phone, p_email, birth_date, sex, m_status, s_name, children) values (1, 'Арбат, 12', 7176167, 'anna@yandex.ru', '1972-03-16', 'F', 'Y', 'Анна Петрова', 2);
Затем загрузим этот файл, как мы делали раньше, в базу данных.
1). Поместите файл в каталог c:\mysql\bin.
2). Выполните в приглашении DOS команду.
dosprompt> mysql employees <employee_per.dat
3). Запустите программу клиента mysql и проверьте, что таблица была создана, с помощью команды SHOW TABLES;.
В системе Linux
1). Перейдите в каталог, в котором находится файл.
2). В приглашении введите следующую команду:
$prompt> mysql employees <employee_per.dat -u your_username -p
3). Проверьте, что таблица была создана с помощью команды SHOW TABLES; в программе клиента mysql.
Данные таблицы можно вывести с помощью команды DESCRIBE.
mysql> DESCRIBE employee_per;
Результат запроса представлен на рис. 9.1.
Обратите внимание, что столбец birth_date имеет тип столбца date (дата). Здесь также присутствует еще один новый тип столбца ENUM, который был рассмотрен в "Типы данных столбцов" .
e_id: идентификатор сотрудника, такой же как в таблице employee_data
phone: номер телефона
birth_date: дата рождения
sex: Пол сотрудника, мужской (M) или женский (F)
m_status: семейное положение, в браке (Y) или холост (N).
s_name: Имя супруга ( NULL, если сотрудник холост)
children: Число детей ( NULL, если детей нет)
Особенности типа данных Date
Даты в MySQL всегда представлены с годом, за которым следует месяц и затем день месяца. Даты часто записывают в виде YYYY-MM-DD, где YYYY -- 4 цифры года, MM -- 2 цифры месяца и DD -- 2 цифры дня месяца.
Операции с датами
Тип столбца даты позволяет выполнять несколько операций, таких как сортировка, проверка условий с помощью операторов сравнения и т.д.
Использование операторов = и !=
select p_email, phone from employee_per where birth_date = '1969-12-31';
Результат запроса представлен на рис. 9.2.
Примечание: MySQL требует, чтобы даты были заключены в кавычки.
Использование операторов >= и <=
select e_id, birth_date from employee_per where birth_date >= '1970-01-01';
Результат запроса представлен на рис. 9.3.