我正在努力将DB2迁移到MySQL查询。我有以下查询转换为MySQL。
DB2 Query:
CREATE FUNCTION SAMPLE_TEST
(
IN CONNECTED TIMESTAMP,
IN DISCONNECTED TIMESTAMP,
IN INTERVAL BIGINT
) RETURNS INTEGER
DETERMINISTIC
NO EXTERNAL ACTION
CONTAINS SQL
CALLED ON NULL INPUT
BEGIN ATOMIC
IF (CONNECTED IS NULL) THEN
RETURN -1;
ELSEIF (DISCONNECTED IS NULL) THEN
RETURN CASE WHEN (INTERVAL = 0 OR CONNECTED + INTERVAL MINUTES > CURRENT TIMESTAMP) THEN 1 ELSE 0 END;
ELSE
RETURN CASE WHEN (INTERVAL = 0 OR CONNECTED + INTERVAL MINUTES > CURRENT TIMESTAMP) AND CONNECTED > DISCONNECTED THEN 1 ELSE 0 END;
END IF;
END#
我试图将以下查询转换为MySQL,我在MySQL中将INTERVAL视为错误。这是最终转换后的查询。
MySQL查询:
CREATE FUNCTION SAMPLE_TEST
(
CONNECTED TIMESTAMP,
DISCONNECTED TIMESTAMP,
INTERVAL BIGINT
) RETURNS INTEGER
BEGIN
IF (CONNECTED IS NULL) THEN
RETURN -1;
ELSEIF (DISCONNECTED IS NULL) THEN
RETURN CASE WHEN (INTERVAL = 0 OR CONNECTED + INTERVAL MINUTES > CURRENT TIMESTAMP) THEN 1 ELSE 0 END;
ELSE
RETURN CASE WHEN (INTERVAL = 0 OR CONNECTED + INTERVAL MINUTES > CURRENT TIMESTAMP) AND CONNECTED > DISCONNECTED THEN 1 ELSE 0 END;
END IF;
END;
我在INTERVAL BIGINT
和
RETURN CASE WHEN (INTERVAL = 0 OR CONNECTED + INTERVAL MINUTES > CURRENT TIMESTAMP) THEN 1 ELSE 0 END;
我应该在MysQL中将CURRENT TIMESTAMP
写入CURRENT_TIMESTAMP
吗?有什么帮助解决这个问题?有文件吗?