MySQL / 5. Работа с датами и временем

MySQL есть несколько типов данных для представления значений дат и времени, а также ряд функций для работы с ними. MySQL хранит даты и время в специальном формате. Необходимо знать эти форматы, чтобы не удивляться тому, как MySQL интерпретирует вводимые даты. MySQL предоставляет и функции форматирования, с помощью которых можно вывести дату и время в формате, отличном от формата по умолчанию.
Статьи раздела '5. Работа с датами и временем':
Выбор записей по временным характеристикам
Задача Вы хотите выбирать записи по их временным характеристикам. Решение Используйте условие для времени или даты в инструкции WHERE. Можно сравнивать непосредственно значения столбцов с известными значениями. А можно примен...
Вывод значений TIMESTAMP в удобном для чтения виде
Задача Вам не нравится, как MySQL отображает значения TIMESTAMP. Решение Переформатируйте их при помощи функции DATE_FORMAT(). Обсуждение Столбцы TIMESTAMP обладают рядом полезных свойств, но одно из свойств не так удачно...
Вычисление возраста
Задача Вы хотите узнать, сколько кому-то лет. Решение Следует решить задачу вычисления интервала между датами, но с небольшой особенностью. При вычислении возраста в годах необходимо учитывать относительное положение начально...
Вычисление длины месяца
Задача Вы хотите узнать, сколько дней в месяце. Решение Определите последний день месяца и извлеките из результата часть день-месяца. Обсуждение Чтобы вычислить количество дней для месяца, к которому относится указанная д...
Вычисление интервалов между значениями времени
Задача Вы хотите узнать, сколько времени прошло между двумя значениями времени. Решение Преобразуйте время в секунды с помощью функции TIME_TO_SEC() и вычислите разность. Если вам нужен интервал, представленный как время, вып...
Вычисления для високосных годов
Задача Вам нужно выполнить вычисление даты, которое принимало бы во внимание наличие високосных годов. Например, длина месяца или года зависит от того, относится ли дата к високосному году. Решение Научитесь определять, являе...
Вычисления со значениями TIMESTAMP Задача
Вы хотите вычислить интервал между значениями TIMESTAMP, найти записи по столбцу TIMESTAMP и тому подобное. Решение Для значений TIMESTAMP возможны те же операции, что и для DATETIME: сравнение, сдвиг и извлечение составляющих...
Добавление значения времени к дате
Задача Вы хотите добавить время к значению даты или к значению дата-и-время. Решение Используйте функции DATE_ADD() и DATE_SUB(), специально предназначенные для выполнения арифметических операций с датами. Вы также можете при...
Изменение формата даты MySQL
Задача Вы хотите изменить формат, в котором MySQL представляет значения дат. Решение Это невозможно. Однако вы можете при сохранении данных преобразовать их в нужный формат, а при отображении привести их практически к любому ...
Использование значений TIMESTAMP
Задача Вы хотите, чтобы при создании или изменении записи автоматически фиксировалось время этого события. Решение Используйте столбец типа TIMESTAMP. Но необходимо отметить, что он обладает некоторыми нетривиальными свойства...
Нахождение первого и последнего дней месяца
Задача У вас есть дата, и необходимо узнать дату первого или последнего дня месяца, к которому она относится, или дату первого или последнего дня месяца n месяцев назад. Решение Выполните смещение даты. Обсуждение Порой т...
Обработка в MySQL строк как значений времени
Задача Вы хотите, чтобы строка интерпретировалась как значение времени. Решение Используйте строку в контексте времени, чтобы дать MySQL понять, как вы бы хотели ее интерпретировать. Обсуждение Если вам нужно заставить My...
Обработка даты и времени как чисел
Задача Вы хотите работать с временной строкой как с числом. Решение Преобразуйте строку в число. Обсуждение MySQL часто разрешает обрабатывать значения даты и времени как числа. Это может быть удобно для выполнения арифме...
Объединение даты и времени в значение дата-и-время
Задача Вы хотите сконструировать объединенное значение дата-и-время из имеющихся отдельных значений даты и времени. Решение Соедините значения, поставив между ними пробел. Обсуждение Для объединения значения даты со значе...
Определение дат для дней других недель
Задача Вы хотите вычислить дату некоторого дня некоторой недели (не текущей). Решение Определите дату этого дня недели для текущей недели, затем сместите результат в интересующую вас неделю. Обсуждение Вычисление даты дня...
Определение дат для дней текущей недели
Задача Вы хотите узнать дату какого-то дня текущей недели. Решение Вычислите количество дней между началом недели и интересующим вас днем и сдвиньте дату на полученное значение. Обсуждение В этом и следующем разделах расс...
Определение дня недели для даты
Задача Вы хотите узнать, на какой день недели выпадает указанная дата. Решение Используйте функцию DAYNAME(). Обсуждение Чтобы вывести название дня недели, примените функцию DAYNAME(): mysql> SELECT CURDATE(), DAYNAME(...
Получение одной даты из другой заменой подстроки
Задача У вас есть дата, и вы хотите получить из нее некоторую другую дату, зная при этом, что у них есть общие составляющие. Решение Рассматривая значение даты или времени как строку, выполните непосредственную подстановку ча...
Преобразование времени в секунды и обратно
Задача У вас есть значение времени, которое вы хотите пересчитать в секунды, или наоборот. Решение Значения TIME являются специальным представлением простейших единиц времени – секунд, и у вас есть возможность преобразовывать...
Преобразование дат в дни и обратно
Задача У вас есть дата, а хотелось бы получить значение в днях, или наоборот. Решение Значения DATE можно преобразовывать в дни и получать из них при помощи функций TO_DAYS() и FROM_DAYS(). Значения дата-и-время также можно п...

Страницы: 1 2