这个函数给了我这个错误:“第35行有错误。”(RETURN diaCompleto;),我不知道下面的代码有什么问题,反正可以给我指出正确的方向,tyvm。
DELIMITER $$
CREATE FUNCTION DIA_FECHA(fecha date)
RETURNS VARCHAR(8)
BEGIN
DECLARE nomDia VARCHAR(6);
DECLARE dia VARCHAR(2);
DECLARE diaCompleto VARCHAR(8);
SET dia = LPAD(DAY(fecha),2,'0');
IF(DAYOFWEEK(fecha) = 1) THEN
SET nomDia = 'DOM - ';
IF(DAYOFWEEK(fecha) = 2) THEN
SET nomDia = 'LUN - ';
IF(DAYOFWEEK(fecha) = 3) THEN
SET nomDia = 'MAR - ';
IF(DAYOFWEEK(fecha) = 4) THEN
SET nomDia = 'MIE - ';
IF(DAYOFWEEK(fecha) = 5) THEN
SET nomDia = 'JUE - ';
IF(DAYOFWEEK(fecha) = 6) THEN
SET nomDia = 'VIE - ';
IF(DAYOFWEEK(fecha) = 7) THEN
SET nomDia = 'SAB - ';
SET diaCompleto = CONCAT(nomDia,dia);
RETURN diaCompleto;
END$$
DELIMITER ;
1条答案
按热度按时间u0sqgete1#
语法错误的原因是您需要在每个
IF/THEN
之后使用END IF;
。请参阅手册中的示例:https://dev.mysql.com/doc/refman/8.0/en/if.html我认为你根本不需要写这个函数,相反,你可以使用MySQL的DATE_FORMAT()函数,它支持一周中不同日期的本地化名称。