Задание 3. Функции даты и времени
Функции CURDATE () и NOW () удобно использовать для добавления в базу данных записей, использующих текущее время. В нашем магазине все поставки и продажи используют текущее время. Поэтому для добавления записей о поставах, и продажах удобно использовать функцию CURDATE (). Например, пусть в наш магазин пришел товар, давайте добавим информацию об этом в таблицу Поставка (incoming): ADDDATE (date… Читать ещё >
Задание 3. Функции даты и времени (реферат, курсовая, диплом, контрольная)
Эти функции предназначены для работы с календарными типами данных. Рассмотрим наиболее применимые.
CURDATE (), CURTIME () и NOW ().
Первая функция возвращает текущую дату, вторая — текущее время, а третья — текущую дату и время. Сравните:
Функции CURDATE () и NOW () удобно использовать для добавления в базу данных записей, использующих текущее время. В нашем магазине все поставки и продажи используют текущее время. Поэтому для добавления записей о поставах, и продажах удобно использовать функцию CURDATE (). Например, пусть в наш магазин пришел товар, давайте добавим информацию об этом в таблицу Поставка (incoming):
Если бы мы хранили дату поставки с типом datatime, то нам больше подошла бы функция NOW ().
ADDDATE (date, INTERVAL value) Функция возвращает дату date, к которой прибавлено значение value. Значение value может быть отрицательным, тогда итоговая дата уменьшится. Давайте посмотрим, когда наши поставщики делали поставки товара:
Предположим, мы ошиблись при вводе даты для первого поставщика, давайте уменьшим его дату на одни сутки:
В качестве значения value могут выступать не только дни, но и недели (WEEK), месяцы (MONTH), кварталы (QUARTER) и годы (YEAR). Давайте для пример уменьшим дату поставки для второго поставщика на 1 неделю:
В нашей таблице Поставки (incoming) мы использовали для столбца Дата поставки (date_incoming) тип date. Этот тип данных предназначен для хранения только даты. А вот если бы мы использовали тип datatime, то у нас отображалась бы не только дата, но и время. Тогда мы могли бы использовать функцию ADDDATE и для времени. В качестве значения value в этом случае могут выступать секунды (SECOND), минуты (MINUTE), часы (HOUR) и их комбинации:
минуты и секунды (MINUTE_SECOND),.
часы, минуты и секунды (HOUR_SECOND),.
часы и минуты (HOUR_MINUTE),.
дни, часы, минуты и секунды (DAY_SECOND),.
дни, часы и минуты (DAY_MINUTE),.
дни и часы (DAY_HOUR),.
года и месяцы (YEAR_MONTH).
Например, давайте к дате 15 апреля 2011 года две минуты первого прибавим 2 часа 45 минут:
SUBDATE (date, INTERVAL value).
функция идентична предыдущей, но производит операцию вычитания, а не сложения.
PERIOD_ADD (period, n).
функция добавляет n месяцев к значению даты period. Нюанс: значение даты должно быть представлено в формате YYYYMM. Давайте к февралю 2011 (201 102) прибавим 2 месяца:
TIMESTAMPADD (interval, n, date).
функция добавляет к дате date временной интервал n, значения которого задаются параметром interval. Возможные значения параметра interval:
FRAC_SECOND — микросекунды.
SECOND — секунды.
MINUTE — минуты.
HOUR — часы.
DAY — дни.
WEEK — недели.
MONTH — месяцы.
QUARTER — кварталы.
YEAR — годы.
TIMEDIFF (date1, date2).
вычисляет разницу в часах, минутах и секундах между двумя датами.
DATEDIFF (date1, date2).
вычисляет разницу в днях между двумя датами. Например, мы хотим узнать, как давно поставщик 'Вильямс' (id=1) поставлял нам товар:
PERIOD_DIFF (period1, period2).
функция вычисляет разницу в месяцах между двумя датами, представленными в формате YYYYMM. Давайте узнаем разницу между январем 2010 и августом 2011:
TIMESTAMPDIFF (interval, date1, date2).
функция вычисляет разницу между датами date2 и date1 в единицах, указанных в параметре interval. Возможные значения параметра interval:
FRAC_SECOND — микросекунды.
SECOND — секунды.
MINUTE — минуты.
HOUR — часы.
DAY — дни.
WEEK — недели.
MONTH — месяцы.
QUARTER — кварталы.
YEAR — годы.
SUBTIME (date, time).
функция вычитает из времени date время time:
DATE (datetime).
возвращает дату, отсекая время. Например:
TIME (datetime).
возвращает время, отсекая дату. Например:
TIMESTAMP (date).
функция принимает дату date и возвращает полный вариант со временем. Например:
DAY (date) и DAYOFMONTH (date).
функции-синонимы, возвращают из даты порядковый номер дня месяца:
DAYNAME (date), DAYOFWEEK (date) и WEEKDAY (date).
функции возвращают день недели, первая — его название, вторая — номер дня недели (отсчет от 1 — воскресенье до 7 — суббота), третья — номер дня недели (отсчет от 0 — понедельник, до 6 — воскресенье:
WEEK (date), WEEKOFYEAR (datetime).
обе функции возвращают номер недели в году, первая для типа date, а вторая — для типа datetime, у первой неделя начинается с воскресенья, у второй — с понедельника:
MONTH (date) и MONTHNAME (date).
обе функции возвращают значения месяца. Первая — его числовое значение (от 1 до 12), вторая — название месяца:
QUARTER (date).
функция возвращает значение квартала года (от 1 до 4):
YEAR (date) функция возвращает значение года (от 1000 до 9999):
DAYOFYEAR (date).
возвращает порядковый номер дня в году (от 1 до 366):
HOUR (datetime).
возвращает значение часа для времени (от 0 до 23):
MINUTE (datetime).
возвращает значение минут для времени (от 0 до 59):
SECOND (datetime).
возвращает значение секунд для времени (от 0 до 59):
EXTRACT (type FROM date).
возвращает часть date определяемую параметром type:
TO_DAYS (date) и FROM_DAYS (n).
взаимообратные функции. Первая преобразует дату в количество дней, прошедших с нулевого года. Вторая, наоборот, принимает число дней, прошедших с нулевого года и преобразует их в дату:
UNIX_TIMESTAMP (date) и FROM_UNIXTIME (n).
взаимообратные функции. Первая преобразует дату в количество секунд, прошедших с 1 января 1970 года. Вторая, наоборот, принимает число секунд, с 1 января 1970 года и преобразует их в дату:
TIME_TO_SEC (time) и SEC_TO_TIME (n).
взаимообратные функции. Первая преобразует время в количество секунд, прошедших от начала суток. Вторая, наоборот, принимает число секунд с начала суток и преобразует их во время:
MAKEDATE (year, n).
функция принимает год и номер дня в году и преобразует их в дату: