2016-08-07 12 views
1

1064 - SQL構文に誤りがあります。 'dIncr DATE =' 2000-01-01 'dEnd DATE =' 2100-01-01 'CREATE TABLE _Dates(2行目のd')ホスティング・サーバーのSQL declareステートメント・エラー

のMariaDBサーバーのバージョンに対応するマニュアルを確認してください。

CREATE TABLE _Dates (
    d DATE, 
    PRIMARY KEY (d) 
) 
DECLARE @dIncr DATE = '2000-01-01' 
DECLARE @dEnd DATE = '2100-01-01' 

WHILE (@dIncr < @dEnd) 
BEGIN 
    INSERT INTO _Dates (d) VALUES(@dIncr) 
    SELECT @dIncr = DATEADD(DAY, 1, @dIncr) 
END 
+0

行末にセミコロンを入れてみてください。 –

+0

はこれで動作しません –

答えて

1

以下hostingerサーバ私のSQLクエリに来エラーストアドプロシージャを必要とするかもしれないが。また、MariaDBでDATEADD関数)がDATE_ADD(ように見える。あなたのプロシージャ・コールは、しばらく時間がかかることを期待しています。

CREATE TABLE _Dates (
    d DATE, 
    PRIMARY KEY (d) 
); 
DELIMITER // 
CREATE PROCEDURE addDates() 
BEGIN 
    DECLARE dIncr DATE DEFAULT '2000-01-01'; 
    DECLARE dEnd DATE DEFAULT '2100-01-01'; 
    WHILE (dIncr < dEnd) DO 
     INSERT INTO _Dates(d) 
     VALUES (dIncr); 
     SET dIncr = DATE_ADD(dIncr, INTERVAL 1 DAY); 
    END WHILE; 
END// 
DELIMITER ; 
CALL addDates(); 
+0

この回答は基本的に正しいと思います。質問のコードは実際にはT-SQLコードであり、MySQLコードではありません。 –

+0

これは今、うまくいっています... onlu hitchそれは行を挿入しますが、私は日付として列が必要です。どうすればいいですか? –

+0

実際には、すべての日付を含む最初の行をヘッダー行である列として追加します。データは後で個々の行に追加されます –

関連する問題