MySQL Case语句不起作用

时间:2011-11-30 23:40:21

标签: mysql case

我在此过程中遇到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);

1 个答案:

答案 0 :(得分:3)

您应该拥有以下内容,而不是SELECT CASE语句,而不是END CASE

   SET @realhour = CASE WHEN xhour > 11 THEN xhour - 12 ELSE xhour END CASE