2017-12-20 6 views
1

私はRODBCを使用してFilemakerデータベースに接続し、データを読み書きします。私は現在、このコードで私のデータベースに日付を書く時に失敗RODBC - sqlSave date

sqlQuery(db, "INSERT INTO mytable (a,c) VALUES (98,'01-01-2017')") 

Rは、エラーをthows:Incompatible types in assignment.

それは私が'decimal'に、データベース内の列Cを再フォーマットし、書き込み時に動作します2つの数値なので、唯一の問題は日付の形式だと確信しています。私はデータのいくつかの手配を試みた(2017-01-012017/01/01、それを引用するなど)。私のデータベースはデータを手動で入力するだけでデータフォーマットdd-mm-yyyyを取るので、問題はありません。

提案がありますか?

+0

どのデータベースあなたは(例えばMySQLやPostgresのは、Oracleなど)を使用していますか? –

+0

これはファイルメーカーのデータベースです。投稿を編集しました。 – Thorsten

+0

私はこのデータベースを知らないので、あなたを助けることはできません。私は、上記のクエリがRではなくデータベース上で直接実行されるのが奇妙であると思います。それは、Rドライバが途中でデータの整列を行っていることを意味します。 –

答えて

0

私はちょうど

ExecuteSQL accepts only the SQL-92 syntax ISO date and time formats with no braces. ExecuteSQL does not accept the ODBC/JDBC format date, time, and timestamp constants in braces.

と述べthis FileMaker documentationを発見した - さらに重要なの! - この:

どんなにあなたが、それは文字列として扱われている書いているものを

To apply the correct formatting to dates in an SQL query, use the DATE statement. If you do not use the DATE statement, ExecuteSQL treats dates as literal strings

...

+0

私はFilemakerを知らないので、これはテストされていないので、私はupvoteできません。 OPがこれを受け入れるなら、私はupvoteに満足しています。 –

関連する問題