【问题标题】:Maria Db making function using if statementMariadb使用if语句制作函数
【发布时间】:2020-06-05 06:55:14
【问题描述】:

我正在研究 EnitityFrameWork 并尝试使用数据库功能。我不熟悉使用 Database 制作功能。这是我做的。错误表示第 16 行的语法错误“,即“RETURN x”

delimiter //
CREATE FUNCTION CREATE_TIME4(hour1 int, minute1 INT, second1 INT) 
RETURNS VARCHAR(50)
BEGIN
    DECLARE x VARCHAR(50);
    DECLARE H VARCHAR(10);
    DECLARE M VARCHAR(10);
    DECLARE S VARCHAR(10);
    IF LENGTH(YEA) < 2 THEN 
        SET H = '0' + CONCAT(hour1);
    IF LENGTH(MON) < 2 THEN 
        SET M = '0' + CONCAT(minute1);
    IF LENGTH(SEC) < 2 THEN 
        SET S = '0' + CONCAT(second1); 
    SET x = CONCAT(H,':', M,':', S);
    RETURN x;
END// 

【问题讨论】:

  • 年、月、秒?不是白天?见DATE_FUNCTION()
  • 问题是我将这个函数用于实体框架,这就是为什么我不能使用 Date_Function

标签: sql function mariadb


【解决方案1】:

您定义的函数中有很多错误。我只是纠正编译错误。

CREATE FUNCTION CREATE_TIME4(@YEA int, @MON INT, @SEC INT) 
RETURNS VARCHAR(50)
AS
BEGIN
    DECLARE @x VARCHAR(50);
    DECLARE @H VARCHAR(10);
    DECLARE @M VARCHAR(10);
    DECLARE @S VARCHAR(10);
    IF LEN(@YEA) < 2 
        SET @H = CONCAT('0', @YEA);
    IF LEN(@MON) < 2 
        SET @M = CONCAT('0', @MON);
    IF LEN(@SEC) < 2 
        SET @S = CONCAT('0', @SEC); 
    SET @x = CONCAT(@H,':', @M,':', @S);
    RETURN @x;
END

【讨论】:

  • @variables 在 MariaDB 中不是这样使用的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-28
  • 1970-01-01
相关资源
最近更新 更多