首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R Package RMySQL:无法将字符转换为VARCHAR MYSQL而不出错

问R Package RMySQL:无法将字符转换为VARCHAR MYSQL而不出错
EN

Stack Overflow用户
提问于 2015-03-13 00:07:53
回答 1查看 126关注 0票数 0

因此,我使用RMySQL包来设置本地MYSQL服务器。我已经建立了一个表,但是我遇到了一些数据转换类型的问题。特别是,我将R中的date类型转换为字符串,并使用以下查询来测试将数据上传到MYSQL:

代码语言:javascript
复制
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表的输出时:

代码语言:javascript
复制
dbGetQuery(mydb,"SELECT * FROM table1;")

我得到了以下输出(截断):

代码语言:javascript
复制
TimestampID    Timestamp LineID JourneyPatternID TimeFrame VehicleJourneyID 
2              1.356998e+15 747              240      1969             3493

注意到输入和输出中第5列(TimeFrame)的区别了吗?"2012-12-31“变成了”1969年“!我尝试过作为日期输入,但是RMySQL命令给了我一个关于日期类型的错误,所以我尝试将其转换为一个字符,以便将数据放入其中。

有人知道这是怎么回事吗?如何将字符放入VARCHARas中,如R所示?

下面是表的设置:

代码语言:javascript
复制
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)
  );
")
EN

回答 1

Stack Overflow用户

发布于 2015-04-25 03:09:58

所以这实际上是有答案的..。

您需要在INSERT命令中的'2012-12-31‘值两边添加引号。它应该是:

代码语言:javascript
复制
INSERT INTO table1 VALUES( 2 , 1.356998403e+15, 747, 240, '2012-12-31', 3493, 0, -6.236852, 53.425327, -709, 747006, 40040, 4094, 0 )
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29016580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档