Problem on subtract one year from current year in ruby on rails

For the ruby on rails application. i have to generate last one year
report.
so i think just do like this.

Take the current system data, then subtract one year, den select data
from
MySQL with this new date.

my question is how to subtract one year from current date in ruby,
basically the format of date in MySql is YYYY-MM-DD. so how to subtract
one
year from this.

i tried one…

*time = Time.new
*
*puts ddat = time.strftime("%d-%m-%Y") *
*
*
here just i change dat format to DD-MM-YYYY, and then try to subtract
1.
But it shows error…

*
*
how to solve this…? and have any problem in this logic…?

On 12 December 2011 10:36, amvis [email protected] wrote:

For the ruby on rails application. i have to generate last one year report.

my question is how to subtract one year from current date in ruby, basically
the format of date in MySql is YYYY-MM-DD. so how to subtract one year from
this.

i tried one…

time = Time.new
puts ddat = time.strftime(“%d-%m-%Y”)

last_year = Time.now.ago(1.year)
records = MyModel.all(:conditions => [“my_date_field > ?”, last_year])

Have a look at the api commands around dates and times:
http://api.rubyonrails.org/classes/Time.html

can you try like this way

time.to_s

I hope it may work

bye:)

in my machine i dn’t have the local application setup. so just i try
this
two for display that

puts last_year = Time.now.ago(1.year) or last_year = 1.year.ago

but it gives error *undefined method `year’ for 1:Fixnum
(NoMethodError).*year is builtin…?

On Mon, Dec 12, 2011 at 6:42 PM, Michael P. [email protected]
wrote:

i tried one…

time = Time.new
puts ddat = time.strftime(“%d-%m-%Y”)

last_year = Time.now.ago(1.year)

for me, the following is much clearer

last_year = 1.year.ago

[email protected].
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en.

On Dec 12, 4:56pm, amvis [email protected] wrote:

in my machine i dn’t have the local application setup. so just i try this
two for display that

puts last_year = Time.now.ago(1.year) or last_year = 1.year.ago

but it gives error *undefined method `year’ for 1:Fixnum (NoMethodError).*year
is builtin…?

The 1.year.ago stuff is rails only, so if you were in a pure ruby
console it wouldn’t work

Fred

Read this Active Record Query Interface — Ruby on Rails Guides

On Tue, Dec 13, 2011 at 11:03 AM, amvis [email protected] wrote:

For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en.


Regards
Mukesh Paras Singh

Thanks for the reply.

get each month data between year. ie [ 2010-12-13 to 2011-12-13]. here i
got this current date and last date in rails. have any idea to select
that? i have to fetch the data in each month from database…?

Thank you
vishnu

  • last_year* = 1.year.ago

SELECT count(id) from customers where created_at > “2010-12-13”

In the above query i need to change into a variable* last_year instead
of
“2010-12-13” *. and how to convert this MySQL query into rails query.
also give me a link to study the rails queries

Thank you
vishnu

On 13 Dec 2011 08:08, “amvis” [email protected] wrote:

any idea to select that? i have to fetch the data in each month from
database…?

Yes. what have you tried?

Date.today.month or Time.now.month to get the month then how will
continue. i think about that on how to continue. But i can’t proceed. i
need to take the each month report from the one year.