RODBC 中的 sqlSave 仅保存 R 中日期的年份
sqlSave from RODBC only saves the year of a Date in R
我将 R 连接到我的 mysql 数据库。当我使用命令 sqlSave(channel, dataframe)
时,我的数据框将被写入数据库,但是所有在 R 中编码为日期的条目(class "POSIXct" "POSIXt",例如“2016- 01-01 CET") 只有 年 会被记录在 mysql 数据库中。这怎么可能?
谢谢你的帮助。
编辑:列类型是"double"。所以我猜 sqlSave 不能保存为 Date/Time?
我使用了完全相同的函数,但来自 library(RMySQL)
,如下所示,它对我有用。首先确保您的数据格式正确:
toSql$Date<-as.POSIXct(strptime(toSql$Date,"%Y-%m-%d %H:%M",tz="GMT"))
然后还要确保在创建 table 时使用 TIMESTAMP
作为列类型:
create table table_name(
ID INTEGER,
DATE TIMESTAMP,
PRIMARY KEY(ID)
)
;
保存到数据库后如下所示:
dbWriteTable(con, name = "table_name", toSql, overwrite=FALSE,
append=TRUE,row.names = NA)
也许还要确保您的 dataframe
的名字相同:
names(toSql)
[1] "ID" "DATE"
尝试将列转换为字符
dataframe$your_date_column <- as.character(dataframe$your_date_column)
我将 R 连接到我的 mysql 数据库。当我使用命令 sqlSave(channel, dataframe)
时,我的数据框将被写入数据库,但是所有在 R 中编码为日期的条目(class "POSIXct" "POSIXt",例如“2016- 01-01 CET") 只有 年 会被记录在 mysql 数据库中。这怎么可能?
谢谢你的帮助。
编辑:列类型是"double"。所以我猜 sqlSave 不能保存为 Date/Time?
我使用了完全相同的函数,但来自 library(RMySQL)
,如下所示,它对我有用。首先确保您的数据格式正确:
toSql$Date<-as.POSIXct(strptime(toSql$Date,"%Y-%m-%d %H:%M",tz="GMT"))
然后还要确保在创建 table 时使用 TIMESTAMP
作为列类型:
create table table_name(
ID INTEGER,
DATE TIMESTAMP,
PRIMARY KEY(ID)
)
;
保存到数据库后如下所示:
dbWriteTable(con, name = "table_name", toSql, overwrite=FALSE,
append=TRUE,row.names = NA)
也许还要确保您的 dataframe
的名字相同:
names(toSql)
[1] "ID" "DATE"
尝试将列转换为字符
dataframe$your_date_column <- as.character(dataframe$your_date_column)