Справочник по функциям

MAKEDATE

Возвращает дату по году и номеру дня в году.

MySQL 8.1
MAKEDATE(year, dayofyear)

Параметры

yearINT
Год
dayofyearINT
Номер дня в году, начиная с 1

Возвращаемое значение

Дата (DATE); номер дня больше числа дней в году переносит дату на следующие годы; NULL, если номер дня меньше 1

Примеры

Дата по году и дню

MySQL 8.1
SELECT MAKEDATE(2025, 156);
MAKEDATE(2025, 156)
2025-06-05

Номер дня больше длины года

MySQL 8.1
SELECT MAKEDATE(2025, 366);
MAKEDATE(2025, 366)
2026-01-01

Нулевой номер дня

MySQL 8.1
SELECT MAKEDATE(2025, 0);
MAKEDATE(2025, 0)
<NULL>

Подробности

В PostgreSQL похожая функция MAKE_DATE принимает год, месяц и день, а не номер дня. Ближайшая замена MAKEDATE(year, n) там — MAKE_DATE(year, 1, 1) + (n - 1): к 1 января прибавляется n - 1 дней.

Смотрите также