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

1,652 views
Skip to first unread message

amvis

unread,
Dec 12, 2011, 5:36:22 AM12/12/11
to rubyonra...@googlegroups.com
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......?

Michael Pavling

unread,
Dec 12, 2011, 5:42:27 AM12/12/11
to rubyonra...@googlegroups.com
On 12 December 2011 10:36, amvis <vgrkr...@gmail.com> 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

BALA MANI

unread,
Dec 12, 2011, 7:09:35 AM12/12/11
to rubyonra...@googlegroups.com

can you try like this way

 time.to_s

 I hope it may work

bye:)

Jim Ruther Nill

unread,
Dec 12, 2011, 7:37:56 AM12/12/11
to rubyonra...@googlegroups.com
On Mon, Dec 12, 2011 at 6:42 PM, Michael Pavling <pav...@gmail.com> wrote:
On 12 December 2011 10:36, amvis <vgrkr...@gmail.com> 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)

for me, the following is much clearer

last_year = 1.year.ago
 
 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

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To post to this group, send email to rubyonra...@googlegroups.com.
To unsubscribe from this group, send email to rubyonrails-ta...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.




--
-------------------------------------------------------------
visit my blog at http://jimlabs.heroku.com

amvis

unread,
Dec 12, 2011, 11:56:37 AM12/12/11
to rubyonra...@googlegroups.com
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...?


Frederick Cheung

unread,
Dec 12, 2011, 12:34:39 PM12/12/11
to Ruby on Rails: Talk

On Dec 12, 4:56 pm, amvis <vgrkrish...@gmail.com> 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

amvis

unread,
Dec 13, 2011, 12:33:21 AM12/13/11
to rubyonra...@googlegroups.com
 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


Mukesh Singh

unread,
Dec 13, 2011, 12:43:27 AM12/13/11
to rubyonra...@googlegroups.com
  Read this http://guides.rubyonrails.org/active_record_querying.html

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To view this discussion on the web visit https://groups.google.com/d/msg/rubyonrails-talk/-/cnYC3lpN4a4J.

To post to this group, send email to rubyonra...@googlegroups.com.
To unsubscribe from this group, send email to rubyonrails-ta...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.



--
Regards
Mukesh Paras Singh

amvis

unread,
Dec 13, 2011, 3:06:49 AM12/13/11
to rubyonra...@googlegroups.com
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

Michael Pavling

unread,
Dec 13, 2011, 3:28:05 AM12/13/11
to rubyonra...@googlegroups.com


On 13 Dec 2011 08:08, "amvis" <vgrkr...@gmail.com> wrote:
> any idea to select that? i have to fetch the data in each month from database....?

Yes. what have you tried?

amvis

unread,
Dec 13, 2011, 3:40:49 AM12/13/11
to rubyonra...@googlegroups.com

 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.
Reply all
Reply to author
Forward
0 new messages