Computer >> Máy Tính >  >> Lập trình >> MySQL

Với sự trợ giúp của hàm, làm cách nào chúng ta có thể trả về sự khác biệt về Năm, Tháng và Ngày giữa hai giá trị ngày?

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.