因此,我使用RMySQL包来设置本地MYSQL服务器。我已经建立了一个表,但是我遇到了一些数据转换类型的问题。特别是,我将R中的date类型转换为字符串,并使用以下查询来测试将数据上传到MYSQL:
INSERT INTO table1 VALUES( 2 , 1.356998403e+15, 747, 240, 2012-12-31, 3493, 0, -6.236852, 53.425327, -709, 747006, 40040, 4094, 0 )但是,当我使用以下命令测试来自MYSQL表的输出时:
dbGetQuery(mydb,"SELECT * FROM table1;")我得到了以下输出(截断):
TimestampID Timestamp LineID JourneyPatternID TimeFrame VehicleJourneyID
2 1.356998e+15 747 240 1969 3493注意到输入和输出中第5列(TimeFrame)的区别了吗?"2012-12-31“变成了”1969年“!我尝试过作为日期输入,但是RMySQL命令给了我一个关于日期类型的错误,所以我尝试将其转换为一个字符,以便将数据放入其中。
有人知道这是怎么回事吗?如何将字符放入VARCHARas中,如R所示?
下面是表的设置:
dbSendQuery(mydb, "
CREATE TABLE Table1 (
TimestampID INT UNSIGNED NOT NULL AUTO_INCREMENT,
Timestamp BIGINT UNSIGNED,
LineID SMALLINT UNSIGNED,
JourneyPatternID VARCHAR(8),
TimeFrame VARCHAR (15),
VehicleJourneyID INT UNSIGNED,
Congestion BOOL,
LonWGS84 NUMERIC(10,8),
LatWGS84 NUMERIC(10,8),
Delay INT,
BlockID INT UNSIGNED,
VehicleID INT UNSIGNED,
StopID INT UNSIGNED,
AtStop BOOL,
PRIMARY KEY (TimestampID)
);
")发布于 2015-04-25 03:09:58
所以这实际上是有答案的..。
您需要在INSERT命令中的'2012-12-31‘值两边添加引号。它应该是:
INSERT INTO table1 VALUES( 2 , 1.356998403e+15, 747, 240, '2012-12-31', 3493, 0, -6.236852, 53.425327, -709, 747006, 40040, 4094, 0 )https://stackoverflow.com/questions/29016580
复制相似问题