Hãy để chúng tôi tạo một hàm tùy chỉnh để xác thực ngày tháng trong MySQL -
mysql> set global log_bin_trust_function_creators=1; Query OK, 0 rows affected (0.03 sec) mysql> delimiter // mysql> create function isValidDate(actualDate varchar(255)) returns int -> begin -> declare flag int; -> if (select length(date(actualDate)) IS NOT NULL ) then -> set flag = 1; -> else -> set flag = 0; -> end if; -> return flag; -> end -> // Query OK, 0 rows affected (0.11 sec) mysql> delimiter ;
Trường hợp 1 -
Khi tham số là giá trị rỗng, tức là ngày được kiểm tra không phải là ngày thực tế. Gọi hàm bằng câu lệnh SELECT -
mysql> select isValidDate(NULL);
Điều này sẽ tạo ra kết quả sau, tức là không phải ngày -
+-------------------+ | isValidDate(NULL) | +-------------------+ | 0 | +-------------------+ 1 row in set (0.05 sec)
Trường hợp 2 -
Khi tham số là một giá trị ngày thực tế. Gọi hàm bằng câu lệnh SELECT -
mysql> select isValidDate('2019-10-21');
Điều này sẽ tạo ra kết quả sau, tức là 1, một ngày thực tế -
+---------------------------+ | isValidDate('2019-10-21') | +---------------------------+ | 1 | +---------------------------+ 1 row in set (0.00 sec)