Chúng ta có thể tạo một hàm chấp nhận các giá trị ngày tháng làm đối số của nó và trả về sự khác biệt về năm, tháng và ngày, như sau
mysql> CREATE FUNCTION date_difference(Date1 DATE, date2 DATE) RETURNS VARCHAR(30) -> RETURN CONCAT( -> @years := TIMESTAMPDIFF(YEAR, date1, date2),IF (@years = 1, ' year, ', ' years, '), -> @months := TIMESTAMPDIFF(MONTH, DATE_ADD(date1, INTERVAL @years YEAR), date2),IF (@months = 1, ' month, ', ' months, '), -> @days := TIMESTAMPDIFF(DAY, DATE_ADD(date1, INTERVAL @years * 12 + @months MONTH), date2),IF (@days = 1, ' day', ' days')) ; Query OK, 0 rows affected (0.00 sec)
Bây giờ, hãy chuyển các giá trị của ngày tháng làm đối số trong hàm date_difference
mysql> Select date_difference('2015-11-16','2016-12-17') AS Difference; +------------------------+ | Difference | +------------------------+ | 1 year, 1 month, 1 day | +------------------------+ 1 row in set (0.00 sec)
Tập hợp kết quả trên cung cấp sự khác biệt giữa hai ngày được chỉ định dưới dạng đối số của hàm.