创建西班牙语短日期的函数



嗨,伙计们,这个函数给了我这个错误:"第35行有问题。"(RETURN diaccompleto;),我不知道下面的代码有什么问题,但可以为我指出正确的方向,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 ;

语法错误的原因是您需要在每个IF/THEN之后使用END IF;。参见手册中的示例:https://dev.mysql.com/doc/refman/8.0/en/if.html

我认为你根本不需要写这个函数。相反,你可以使用MySQL的DATE_FORMAT()函数。

mysql> set lc_time_names = 'es_ES';
mysql> select date_format(curdate(), '%a - %d') as diaCompleto;
+-------------+
| diaCompleto |
+-------------+
| sáb - 19    |
+-------------+

最新更新