mysql 为西班牙语短日期创建函数

oxiaedzo  于 2022-11-21  发布在  Mysql
关注(0)|答案(1)|浏览(134)

这个函数给了我这个错误:“第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 ;
u0sqgete

u0sqgete1#

语法错误的原因是您需要在每个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    |
+-------------+

相关问题