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

Xác thực ngày trong MySQL bằng hàm tùy chỉnh

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)