代码之家  ›  专栏  ›  技术社区  ›  TSCAmerica.com

Mysql-打印@loop_start_date到@loop_end_date之间的所有值

  •  0
  • TSCAmerica.com  · 技术社区  · 8 年前

    我试图:

    一。打印介于两者之间的所有值@ loop_start_date 到 @loop_end_date
    2。 循环开始日期 在这里应该增加1直到 loop_start_date=loop_end_date

    我试过了,但是Mysql说

         #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 'BEGIN   Declare @user_id int' at line 3
    

    这是程序代码

    CREATE PROCEDURE generatePayscale
    
    BEGIN
        Declare @user_id int;
        Declare @office_id int;
        Declare @loop_start_date Date;
        Declare @loop_end_date Date;
        SET @user_id = 1287;
        SET @office_id = 8;
        SET @loop_start_date = '2018-06-02'; 
        SET @loop_end_date = '2018-06-06';
    
    
        WHILE(@loop_start_date < @loop_end_date) do 
            SELECT old_paysetupid 
            FROM   personneltransfer personnelid=@user_id 
            AND    pt.transferdate>@loop_start_date 
        END WHILE;
     END
    
    1 回复  |  直到 8 年前
        1
  •  0
  •   t..    8 年前

    这可能会指引你正确的方向,我会改变一些事情。补充 BEGIN . 然后为每个变量添加declare。那你需要一个 where 从之后

    SET @user_id = 1287;
    SET @office_id = 8;
    SET @loop_start_date = '2018-06-02'; 
    SET @loop_end_date = '2018-06-06';
    
    WHILE(@loop_start_date < @loop_end_date) do
    BEGIN 
        SELECT old_paysetupid 
        FROM   personneltransfer where personnelid=@user_id 
        and pt.transferdate>@loop_start_date 
    END WHILE;