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

MAKEDATE

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

MySQL 8.4
MAKEDATE(year, dayofyear)
year
Год
INT
dayofyear
Номер дня в году, начиная с 1
INT

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

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

Примеры

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

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

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

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

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

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

Подробности

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

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