使用自定义函数在MySQL中验证日期

让我们创建一个自定义函数来验证MySQL中的日期-

set global log_bin_trust_function_creators=1;
delimiter //
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
   -> //
delimiter ;

情况1-

当参数为空值时,即要检查的日期不是实际日期。使用SELECT语句调用函数-

select isValidDate(NULL);

这将产生以下输出,即不是日期-

+-------------------+
| isValidDate(NULL) |
+-------------------+
| 0                 |
+-------------------+
1 row in set (0.05 sec)

情况2-

当parameter为实际日期值时。使用SELECT语句调用函数-

select isValidDate('2019-10-21');

这将产生以下输出,即1,实际日期-

+---------------------------+
| isValidDate('2019-10-21') |
+---------------------------+
| 1                         |
+---------------------------+
1 row in set (0.00 sec)