我在此过程中遇到CASE
语句时遇到问题:
DELIMITER //
CREATE PROCEDURE getRowsByHourHalfday(xhour smallint)
BEGIN
SET @twelveless = xhour - 12;
SELECT CASE
WHEN (xhour, > 11) THEN SET @realhour = ( xhour - 12);
ELSE SET @realhour = xhour;
END CASE;
SET @first = @realhour * 60;
SET @next = @first + 59;
SELECT * FROM mydb.halfday WHERE minutepart BETWEEN @first AND @next;
END //
DELIMITER ;
这是我正在尝试的伪代码:
if hour > 11 then
set newhour = hour - 12;
set first = newhour * 60;
else
set first = hour * 60;
endif
select * from halfday where minutepart between first and (first + 60);
答案 0 :(得分:3)
您应该拥有以下内容,而不是SELECT CASE
语句,而不是END CASE
。
SET @realhour = CASE WHEN xhour > 11 THEN xhour - 12 ELSE xhour END CASE