2016-05-11 2 views
0

Я подключил R к моей базе данных mysql. Когда я использую команду sqlSave(channel, dataframe), моя база данных будет записана в базу данных, но все записи, которые кодируются как даты в R (класс «POSIXct» «POSIXt», например «2016-01-01 CET»), только год записываться в базу данных mysql. Как это возможно?
Спасибо за помощь.sqlSave от RODBC сохраняет только год даты в R

EDIT: Тип столбца является «двойным». Итак, я думаю, что sqlSave не может сохранять как Date/Time?

+0

Вы пытались установить тип столбца как строку в своей базе данных и преобразовать даты в символ, а затем сохранить их? – Psidom

ответ

0

Я использовал точную функцию, но от library(RMySQL), следующим образом, и это сработало для меня. Сначала убедитесь, что ваши данные в правильном формате:

toSql$Date<-as.POSIXct(strptime(toSql$Date,"%Y-%m-%d %H:%M",tz="GMT")) 

Тогда и убедитесь, что при создании таблицы вы использовали TIMESTAMP как columntype:

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" 
Смежные вопросы