← К оглавлению занятия

🔖 Справочник: summary session 3

⚡ Минимум для запоминания

  • INT, DECIMAL, VARCHAR, BOOLEAN, DATE, DATETIME — основные типы.
  • CAST(expr AS type) — явное преобразование.
  • NOW(), CURDATE(), DATE_ADD, DATEDIFF, DATE_FORMAT — функции дат.
  • MySQL ↔ PostgreSQL: разный синтаксис интервалов и извлечения частей даты.

Типы данных

КатегорияТипНазначение
ЧисловыеINTцелые числа
DECIMAL(p, s)точные числа с фиксированной точкой
FLOAT, DOUBLEчисла с плавающей точкой
СтроковыеCHAR(n)строка фиксированной длины
VARCHAR(n)строка переменной длины
TEXTбольшой текст
БулевыBOOLEANTRUE / FALSE (в MySQL часто TINYINT(1))
Дата и времяDATEтолько дата
TIMEтолько время
DATETIMEдата и время
TIMESTAMPмомент времени с учётом часового пояса
YEARтолько год

Функция CAST

CAST(expression AS target_type)
Целевой типОписание
SIGNEDцелое число со знаком
UNSIGNEDцелое число без знака
DECIMALчисло с фиксированной точкой
CHARстрока (в MySQL CAST)
DATEдата
TIMEвремя
DATETIMEдата и время

Функции даты и времени

ФункцияОписаниеПример
NOW()Текущие дата и времяSELECT NOW();
CURDATE()Текущая датаSELECT CURDATE();
CURTIME()Текущее времяSELECT CURTIME();
DATE_FORMAT(date, format)ФорматированиеSELECT DATE_FORMAT(NOW(), '%d-%m-%Y');
DATEDIFF(date1, date2)Разница в дняхSELECT DATEDIFF('2024-08-30', '2024-08-25');
DATE_ADD(date, INTERVAL n unit)Прибавить интервалSELECT DATE_ADD(NOW(), INTERVAL 7 DAY);
DATE_SUB(date, INTERVAL n unit)Вычесть интервалSELECT DATE_SUB(NOW(), INTERVAL 90 DAY);
YEAR(date)ГодSELECT YEAR(order_date);
MONTH(date)МесяцSELECT MONTH(order_date);
DAY(date)ДеньSELECT DAY(order_date);
EXTRACT(unit FROM date)Извлечь часть датыSELECT EXTRACT(YEAR FROM NOW());

MySQL ↔ PostgreSQL

ОперацияMySQLPostgreSQL
Текущая дата/времяNOW()NOW(), CURRENT_TIMESTAMP
Текущая датаCURDATE()CURRENT_DATE
Текущее времяCURTIME()CURRENT_TIME
Разница в дняхDATEDIFF(d1, d2)DATE_PART('day', d1 - d2)
Добавить интервалDATE_ADD(d, INTERVAL 7 DAY)d + INTERVAL '7 days'
Извлечь годYEAR(d)EXTRACT(YEAR FROM d)

Полный справочник

→ Справочник SQL