2017-06-03 133 views
1

我想插入一個日期時間在我的表中,但我不明白爲什麼它不工作。我運行下面的查詢:日期時間插入錯誤

DROP TABLE IF EXISTS dynamic_pricing ; 
CREATE TABLE dynamic_pricing(
    id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
    time_start TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, 
    time_stop TIMESTAMP NOT NULL, 
    change_ratio REAL NOT NULL 
    -- day_of_week INT(1) 
); 

INSERT INTO dynamic_pricing(id,time_start,time_stop,change_ratio) 
VALUES(1,DATETIME('2000-01-01 00:00:00'),DATETIME('2000-01-01 00:00:02'),2); 

我使用this試過,只拿到

ERROR 1064 (42000): 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 '('2000-01-01 00:00:00'),DATETIME('2000-01-01 
00:00:02'),2)' at line 2 

這有什麼錯此查詢?

回答

1

問題是,您的值被定義爲DATETIME(),但您可以改爲使用 INSERT INTO dynamic_pricing VALUES ('2017-06-03 21:30:03')

1

鑑於您默認了兩個值,您不需要插入它們。我建議:

INSERT INTO dynamic_pricing(time_stop, change_ratio) 
    VALUES('2000-01-01 00:00:02', 2); 

然後,DATETIME()是不必要的(是它甚至功能?)。 Here是一個SQL小提琴示例。

+0

是的,那不是功能。我的壞= /。刪除它解決了這個問題 –

1

INSERT INTO dynamic_pricing(id,time_start,time_stop,change_ratio) VALUES(1,'2000-01-01 00:00:00','2000-01-01 00:00:02',2);