Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将ms sql函数转换为mysql_Mysql_Sql_Sql Server_Sql Server 2008 - Fatal编程技术网

将ms sql函数转换为mysql

将ms sql函数转换为mysql,mysql,sql,sql-server,sql-server-2008,Mysql,Sql,Sql Server,Sql Server 2008,我在将ms sql函数转换为mysql时遇到了一个问题。以下是ms sql函数代码: CREATE FUNCTION [crewu2].[isAvailable] (@OwnerID int, @DateFrom Smalldatetime, @DateTo Smalldatetime) RETURNS bit AS BEGIN DECLARE @t bit IF @DateFrom IS NULL or @DateTo IS NULL or E

我在将ms sql函数转换为mysql时遇到了一个问题。以下是ms sql函数代码:

CREATE FUNCTION [crewu2].[isAvailable] (@OwnerID int, @DateFrom Smalldatetime, @DateTo Smalldatetime)  
RETURNS bit AS  
BEGIN  
    DECLARE @t bit  
    IF @DateFrom IS NULL or @DateTo IS NULL 
        or EXISTS (select DateID
                     from [client_BlackDates]
                    where OwnerID=@OwnerID 
                      and ((DateFrom<=@DateFrom and @DateFrom<=DateTo) 
                            or (DateFrom<=@DateTo and @DateTo<=DateTo)))  
        SET @t=0  
    ELSE  
        SET @t=1  
RETURN @t  
END  
以下是mysql中的转换:

DELIMITER $$  
CREATE FUNCTION isAvailable (OwnerID INT, DateFrom DATETIME, DateTo DATETIME)  
RETURNS BIT   
BEGIN  
    DECLARE t BIT;  
    IF DateFrom IS NULL OR DateTo IS NULL
        OR EXISTS (SELECT DateID
                     FROM client_BlackDates
                    WHERE OwnerID=OwnerID 
                      AND ((DateFrom<=DateFrom AND DateFrom<=DateTo)
                            OR (DateFrom<=DateTo AND DateTo<=DateTo)))  
        SET t=0;  
    ELSE  
        SET t=1;  
    RETURN t  
END $$  
DELIMITER;
但它给了我以下错误:

错误代码:1064 您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解可在“SET t=0”附近使用的正确语法; 其他的 设置t=1; 返回t 在第6行结束


请任何人帮我解决这个问题。

这应该是你错过的工作,如果:


参考MySQL。

这应该是您错过的工作,如果:


参考MySQL。

查看sintax的MySQL手册


查看sintax的MySQL手册


我还能问一个函数吗?这是我的第二个函数,请看一看。。[它给了我这个错误:错误代码:1415不允许从函数返回结果集我能再问一个函数吗?这是我的第二个函数请看一下..[它给了我这个错误:错误代码:1415不允许从函数返回结果集
DELIMITER $$
CREATE FUNCTION isAvailable (OwnerID INT, DateFrom DATETIME, DateTo DATETIME)
RETURNS BIT
BEGIN
DECLARE t BIT;
IF DateFrom IS NULL OR DateTo IS NULL OR EXISTS (SELECT DateID FROM client_BlackDates WHERE OwnerID=OwnerID AND ((DateFrom<=DateFrom AND DateFrom<=DateTo) OR (DateFrom<=DateTo AND DateTo<=DateTo)))
**THEN** 
SET t=0;
ELSE
SET t=1;    
RETURN t;
**END IF;**
END $$
DELIMITER ;
DELIMITER //
CREATE FUNCTION isAvailable (OwnerID INT, DateFrom DATETIME, DateTo DATETIME)  
RETURNS BIT   
BEGIN  
    DECLARE t BIT;  
    IF DateFrom IS NULL OR DateTo IS NULL 
       OR EXISTS (SELECT DateID
                    FROM client_BlackDates
                   WHERE OwnerID=OwnerID
                      AND ((DateFrom<=DateFrom AND DateFrom<=DateTo)
                            OR (DateFrom<=DateTo AND DateTo<=DateTo)))
        THEN
        SET t = 0;
    ELSE  
        SET t = 1;  
    END IF;
    RETURN t;
END //
DELIMITER ;