1、rownames算在内,会作为一列;
2、字符会为varchar(255),数值会为float;
3、SQLServer中,datatime类型,默认显示格式为“2017-05-01 12:30:00.000”,在R中,以字符串型,as.Date型,
as.POSIXct型存入SQLServer中预定义的表,效果一样。
其次,说一下在尝试的过程中遇到的困难:
1 未在数据库中建立数据表,直接存储,生成错误。
错误原因:R数据框里含有非数值非字符的日期时间类型,在默认的情况下,只可以存储数值和字符型,在数据库中生成对应 名称的数据表,里面的字段类型为float和varchar(255),所以,在尝试时,去掉日期时间就可以了。
2 指定存储rownames和指定主键。
参数说明:如果不想存储rownames,则指定参数rownames=FALSE,也就不牵扯主外键的问题。
最后,说一下自己的应用实例:
第一步:在SQLServer中建数据表T_ConvergenceBoxCVS,需要指定清楚字段的数据类型,int、datatime等。
- use [PS.42];
- create table T_ConvergenceBoxCVS
- (DeviceId int not null,
- DataTime datetime not null,
- CVS float
- );
- T_ConvergenceBoxCVS <- data.frame(
- DeviceId = c(5788,5811), # 在data.frame内部使用等号赋值运算符
- DataTime = c(as.POSIXct("2017-05-01"),as.POSIXct("2017-05-01")),
- CVS = c(2.123, 4.1243),stringsAsFactors = FALSE)
- sqlSave(dbhandlelocal, # 创建的数据连接
- T_ConvergenceBoxCVS, #R数据框名称
- tablename = "T_ConvergenceBoxCVS", # 数据库表名
- rownames = FALSE, # 不存储数据框的行名
- append = TRUE) # 添加新记录到数据库表中


雷达卡





京公网安备 11010802022788号







