RPostgres
パッケージを使用してPostgres
データベースにR tibble
オブジェクト(またはdata.frame
)を書き込もうとしています。ドキュメントに続いて、dbWriteTable
関数を使用しようとしています。はRPGを使用してPostgresSQLにタイムスタンプを書き込めませんdbWriteTable
ただし、このメソッドにはfield.types
の指定がないことがわかりました。ここでは、入力がPOSIXct
のタイムスタンプ(タイムスタンプが文字として解釈されるときに渡る)があるときにメソッドが失敗するのを見ることができる最小の例を示します。
library(dplyr)
library(DBI)
library(RPostgres)
library(tibble)
conn <- dbConnect(RPostgres::Postgres(),
host = url$host,
port = url$port,
dbname = url$dbname,
user = url$user,
password = url$password
)
test <- tibble(
words = c("hallo","ja", "nein"),
value = c(3,4,5),
time= as.POSIXct(c("2016-05-04 04:32","2016-06-02 09:37","2016-07-12 10:43")))
test2 <- tibble(
words = c("hallo","ja", "nein"),
value = c(3,4,5),
time= c("2016-05-04 04:32","2016-06-02 09:37","2016-07-12 10:43"))
dbWriteTable(conn = conn, name = "words", value = test)
> Error in eval(substitute(expr), envir, enclos) :
> ERROR: invalid input syntax for type real: "2016-05-04 04:32:00"
> CONTEXT: COPY words, line 1, column time: "2016-05-04 04:32:00"
dbWriteTable(conn = conn, name = "words2", value = test2)
> [1] TRUE
誰もがR
を使用してPostgres
のタイムスタンプを持つテーブルを書くためのより良い方法を知っていますか?
こんにちは、あなたのコメントクリスいただきありがとうございます。残念ながら問題を解決していない元の例では、タイプミスを修正しました。 – spsaaibi
PostgreSQLドライバをRPostgreSQLパッケージに入れてみてください。あなたの例は私のためにうまく動作します。私はそれが役に立ちそうなら私の投稿を編集することができます。 –
これは私に 'RPostgreSQL'を再訪させました。このRPostgreSQLは、いくつかのSSL接続の問題を解決しました(この記事でも説明されていません)。クリスおかげで! – spsaaibi