Trong MariaDB, MAKEDATE()
là một hàm ngày và giờ được tích hợp sẵn trả về một ngày, dựa trên năm và ngày trong năm được cung cấp dưới dạng đối số.
Cú pháp
Cú pháp như sau:
MAKEDATE(year,dayofyear)
Ví dụ
Đây là một ví dụ:
SELECT MAKEDATE(2030, 10);
Kết quả:
+--------------------+ | MAKEDATE(2030, 10) | +--------------------+ | 2030-01-10 | +--------------------+
Và một cái khác:
SELECT MAKEDATE(2030, 100);
Kết quả:
+---------------------+ | MAKEDATE(2030, 100) | +---------------------+ | 2030-04-10 | +---------------------+
Trả lại một ngày trong một năm tới
Nếu đối số thứ hai (ngày trong năm) lớn hơn số ngày trong năm, thì ngày kết quả là một năm trong tương lai.
Ví dụ:
SELECT
MAKEDATE(2030, 366),
MAKEDATE(2030, 700),
MAKEDATE(2030, 7000);
Kết quả:
+---------------------+---------------------+----------------------+ | MAKEDATE(2030, 366) | MAKEDATE(2030, 700) | MAKEDATE(2030, 7000) | +---------------------+---------------------+----------------------+ | 2031-01-01 | 2031-12-01 | 2049-03-01 | +---------------------+---------------------+----------------------+
Zero Days
Đối số thứ hai (ngày trong năm) phải lớn hơn 0
hoặc kết quả là null
.
Ví dụ:
SELECT
MAKEDATE(2030, 366),
MAKEDATE(2030, 700),
MAKEDATE(2030, 7000);
Kết quả:
+---------------------+---------------------+----------------------+ | MAKEDATE(2030, 366) | MAKEDATE(2030, 700) | MAKEDATE(2030, 7000) | +---------------------+---------------------+----------------------+ | 2031-01-01 | 2031-12-01 | 2049-03-01 | +---------------------+---------------------+----------------------+
Thiếu đối số
Đang gọi MAKEDATE()
với số lượng đối số sai hoặc không chuyển bất kỳ đối số nào, dẫn đến lỗi:
SELECT MAKEDATE();
Kết quả:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'MAKEDATE'
Và một ví dụ khác:
SELECT MAKEDATE( 2020, 10, 20 );
Kết quả:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'MAKEDATE'
Dành thời gian
Cũng xem MAKETIME()
để xây dựng một giá trị thời gian từ giờ, phút và giây của nó.