Andrea Campagna schrieb:
> Hi to all,
> 
> i've a timestamp value stored in a Postgres DB. I've to make the
> difference between the time value obtained with Time.now function and
> the time value that get from the DB. The code is above:
> 
> res = conn.query("SELECT stato,last_access FROM usage WHERE peer=100;")
> 
> time=Time.new
> access_time=res[0][1]
> time=time - access_time
> 
> When i try to run the script i get the following error:
> 
> in `-': no implicit conversion to float from string (TypeError)
> 
> i've tried to make a casting like this
> 
> time=time.to_s - access_time.to_s
> 
> but i get another error
> 
> undefined method `-' for "Mon Jul 16 18:02:17 +0200 2007":String
> (NoMethodError)
> 
> How can i cast the field???
> 
> thanks in advance!!
> 

Hi Andrea,
don't know how res[0][1] looks like, but generally you need to parse the
string with for example ParseDate#parsedate and then make a Time from
the returned array...

require 'parsedate'
access_time = Time.local(ParseDate.parsedate(res[0][1]))

Regards
Florian