2016-07-23 10 views
0
でInvalidDatetimeFormatエラー

スクリプト:PG ::ルビー

require 'pg' 

con = PGconn.connect(:dbname => 'employee'); 
con.exec "SET datestyle TO DMY" 

con.prepare 'getid' , "SELECT id FROM users WHERE user = $1 AND date IN ($2)" 

str = "'21/07/2016' , '22/07/2016'" 
res = con.exec_prepared 'getid' , ['usr1',str] 
puts res.values 

出力:

g.rb:10:in `exec_prepared': ERROR: invalid input syntax for type date: "'21/07/2016' , '22/07/2016'" (PG::InvalidDatetimeFormat) from g.rb:10:in `<main>' 

私の要件は、ユーザー名と日付に基づいて、すべてのIDを取得することです。しかし、それは上記のエラーを与えます。これを解決するには?

答えて

1

PGへの実際の日付オブジェクトの配列を渡し、運転手はあなたのためのフォーマットの仕事を行います。

dates = %w|21/07/2016 22/07/2016| 
res = con.exec_prepared 'getid', ['usr1', dates.map(&Date.method(:parse))]