sql >> Databáze >  >> RDS >> Mysql

Jak to převedu z TSQL na MYSQL?

Z dokumentace:DECLARE is permitted only inside a BEGIN ... END compound statement and must be at its start, before any other statements.

Aktualizovat

Tady je něco bližšího. Budete muset vyřešit syntaxi CONVERT což je v MySQL jiné.

DELIMITER $$
CREATE PROCEDURE test()
BEGIN
    DECLARE dateInsert DATETIME;
     SET dateInsert = '1900-01-01';
     WHILE dateInsert < '2100-01-01' DO
        BEGIN
             INSERT INTO DateLookup
             (
                 DateKey, DateFull, FullYear,
                 QuarterNumber, WeekNumber, WeekDayName,
                 MonthDay, MonthName, YearDay,
                 DateDefinition,
                        CharacterDate,
                        WeekDay,
                        MonthNumber
             )

             SELECT
                 CONVERT(VARCHAR(8), dateInsert, 112), dateInsert, YEAR(@Date),
                 DATEPART(qq, dateInsert), DATEPART(ww, dateInsert), DATENAME(dw, dateInsert),
                 DATEPART(dd, dateInsert), DATENAME(mm, dateInsert), DATEPART(dy,@Date),
                       DATENAME(mm, dateInsert) + ' ' + CAST(DATEPART(dd, dateInsert) AS CHAR(2)) + ',   
                   ' + CAST(DATEPART(yy, dateInsert) AS CHAR(4)),
                   CONVERT(VARCHAR(10), dateInsert, 101),
                   DATEPART(dw, dateInsert),
                   DATEPART(mm, dateInsert)

             SET dateInsert = DATEADD(dd, 1, dateInsert)
        END
     END WHILE;
END $$


  1. Objednávka CakePHP nefunguje

  2. DataSourceInitializer nefunguje na Spring boot 1.2

  3. Proč Entity Framework generuje vnořené dotazy SQL?

  4. Jak získám primární klíč (klíče) tabulky z Postgres přes plpgsql?