17.09.2024
MySQL предоставляет несколько типов данных для хранения интересующих нас значений. Каждый из них имеет свои особенности и форматы. Чуть более подробная информация будет ниже в заметке.
DATE
Тип данных используется для хранения только даты в формате 'YYYY-MM-DD'. А вот живой пример - '2020-02-15'.
Форматы вставки
- 'YYYY-MM-DD'
- 'YY-MM-DD'
- 'YYYYMMDD'
- 'YYMMDD
При вставке данных в столбец БД допускается использовать различные символы-разделители. Например, 'YYYY@MM@DD'.
DATETIME
Этот тип хранит вместе с датой еще и время в формате 'YYYY-MM-DD HH-MI-SS'.
Форматы вставки
- 'YYYY-MM-DD HH:MI:SS'
- 'YY-MM-DD HH-MI-SS'
- 'YYYYMMDDHHMISS'
- 'YYMMDDHHMISS'
Ты спросишь про часовые пояса. Они не влияют на отображение времени. Время будет показано так, как было сохранено.
TIMESTAMP
Удивительно, но данный тип также хранит дату и время. Но есть нюанс. Он учитывает текущий часовой пояс при выборке данных. В самой БД информация хранится по нулевому часовому поясу аля UTC.
TIME
Здесь только время хранится. Формат - 'HH:MI:SS'. Кстати, если часы превышают 24, то они могут быть записаны как 'HHH:MI:SS'.
YEAR
Тип YEAR предназначен для хранения года в формате 'YYYY', например, 2023.
Дополнительные функции
В MySQL умные дядьки придумали функции разные. Например, DATE_FORMAT() - позволит тебе изменить отображение даты. Берешь различные спецификаторы формата (%Y, %m, %d) и делаешь из них конфетку.
SELECT DATE_FORMAT('2023-12-01', '%d-%m-%Y');
Выведет дату в виде '01-12-2023'. Там еще разные бывают функции, но я их сейчас рассматривать не хочу. Может быть позже.