Опубликован: 16.01.2007 | Уровень: для всех | Доступ: свободно
Лекция 9:

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

< Лекция 8 || Лекция 9: 1234 || Лекция 10 >
Аннотация: В лекции рассматриваются команды работы с датой и временем в MySql.

Работа с датой

Файл для работы с этой лекцией - скачать.

До сих пор мы имели дело с текстом ( 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);

Затем загрузим этот файл, как мы делали раньше, в базу данных.

В системе Windows

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.

Просмотр данных таблицы

Рис. 9.1. Просмотр данных таблицы

Обратите внимание, что столбец birth_date имеет тип столбца date (дата). Здесь также присутствует еще один новый тип столбца ENUM, который был рассмотрен в "Типы данных столбцов" .

e_id: идентификатор сотрудника, такой же как в таблице employee_data

address: адрес сотрудника

phone: номер телефона

p_email: личный адрес e-mail

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.

Поиск по дате рождения

Рис. 9.2. Поиск по дате рождения

Примечание: MySQL требует, чтобы даты были заключены в кавычки.

Использование операторов >= и <=

select e_id, birth_date from employee_per where birth_date >= '1970-01-01';

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

Поиск по дате рождения с использованием оператора >=

Рис. 9.3. Поиск по дате рождения с использованием оператора >=
< Лекция 8 || Лекция 9: 1234 || Лекция 10 >
Александра Каева
Александра Каева
Здравствуйте! Студент ВУЗа может пройти проф.переподготовку и получить официальный документ?
Диляра Кенжебай
Диляра Кенжебай
для чего предназначены схемы баз данных?
Анатолий Федоров
Анатолий Федоров
Россия, Москва, Московский государственный университет им. М. В. Ломоносова, 1989
Сергей Пантелеев
Сергей Пантелеев
Россия, Москва