2017-12-11 27 views
1

data.frameをodbcを通じて新しいテーブルのSQL Serverデータベースに保存します。 data.frameには、1つの列に日付が含まれています。SQL Serverデータに日付を書き込むR

私は、次のコマンドを使用しています:

require(odbc) 
require(DBI) 

MyData <- data.frame(Date = as.Date(c("2017-05-17","2017-05-18"), format = "%Y-%m-%d")) 

conn <- DBI::dbConnect(drv = odbc::odbc(), dsn='MyDatabaseSource') 

dbWriteTable(conn = conn, name = 'dbo.MyTable', value = MyData, overwrite = T) 

しかし、これは、結果、次のエラーメッセージ

Error in result_insert_dataframe([email protected], values) : nanodbc/nanodbc.cpp:1587: 22007: [Microsoft][ODBC SQL Server Driver][SQL Server]Conversion failed when converting date and/or time from character string. 

私はcharacterに列タイプを変更することによってそれを解決したが、その後することができます列はvarchar(255)としてデータベースに格納されます。 varcharではなく、日付の列を日付形式でデータベースに格納するにはどうすればよいですか?

+0

データベース内のその列の型がどのようなものです:私は、日付形式に戻し、その後YYYYMMDD形式でchrに日付列を変更することによってこれをしませんでしたか? –

+0

テーブルが存在しないので、dbWriteTableはテーブルを作成します。 – Mace

+2

言語依存フォーマットyyyy-mm-ddを使用せず、yyyymmddを使用します。 – sepupic

答えて

1

この問題は、コメントにsepupicが示唆するように、言語に依存しない日付形式yyyymmddを使用することで解決されました。

MyData$Date <- as.Date(format(MyData$Date, "%Y%m%d"), format = "%Y%m%d") 
関連する問題