将 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;
但它给了我以下错误:
Error Code : 1064
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SET t=0;
ELSE
SET t=1;
RETURN t
END' at line 6
请任何人帮助我解决这个问题。