Forum: Ruby on Rails mysql date out of range

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
F87d150876b608711d5fc8154a8038c9?d=identicon&s=25 Herman Müller (gotzbold)
on 2009-05-19 19:14
Hi ruby community,

I use ruby 1.8.6, rails 2.2.2 and mysql 5.045.

In my scaffold I use "t.date :birthday".

When I want to save a birthday  like 12.05.1970 I can save it. But when
I try to save older birthdays like 12.05.1969 I get the error-message
"time out of range".

Remarkable is, when I try to save the date without ruby/rails directly
in the mysl-database, there is no error-message, so it must be a kin of
ruby/rails bug.

Do somebody know a solution?

Thanks in front for every proposal for solution:-)

Regs Hermann
3131fcea0a711e5ad89c8d49cc9253b4?d=identicon&s=25 Julian Leviston (Guest)
on 2009-05-19 19:46
(Received via mailing list)
Dates can't store earlier than I think 1970 something. Use time.

Blog: http://random8.zenunit.com/
Twitter: http://twitter.com/random8r
Learn: http://sensei.zenunit.com/
New video up now at http://sensei.zenunit.com/ real fastcgi rails
deploy process! Check it out now!


On 20/05/2009, at 3:14 AM, Herman M¨¹ller
<rails-mailing-list@andreas-s.ne
Bee69cfed999cd13e3bff73d472a39ee?d=identicon&s=25 Hassan Schroeder (Guest)
on 2009-05-19 19:58
(Received via mailing list)
On Tue, May 19, 2009 at 10:14 AM, Herman
Müller<rails-mailing-list@andreas-s.net> wrote:

> ruby/rails bug.
Can you print the entire error message and stack trace, if any?

I just tried this on the same setup and had no error.

--
Hassan Schroeder ------------------------ hassan.schroeder@gmail.com
Bee69cfed999cd13e3bff73d472a39ee?d=identicon&s=25 Hassan Schroeder (Guest)
on 2009-05-19 19:59
(Received via mailing list)
2009/5/19 Julian Leviston <julian@coretech.net.au>:
>
> Dates can't store earlier than I think 1970 something. Use time.

The MySQL Date doc for 5.0.x says:

The DATE type is used when you need only a date value, without a time
part. MySQL retrieves and displays DATE values in 'YYYY-MM-DD' format.
The supported range is '1000-01-01' to '9999-12-31'.

FYI,
--
Hassan Schroeder ------------------------ hassan.schroeder@gmail.com
F87d150876b608711d5fc8154a8038c9?d=identicon&s=25 Herman Müller (gotzbold)
on 2009-05-22 10:25
Thanks for all suggestions!

I made a little date experiment and the normal date range of ruby 1.8.6,
rails 2.2.2 and mysql 5.045 is between 01.01.0001 and 01.01.3000 or
greater.

The error message "argument out of range" appears only when I use the
DHTMLCalendar plugin from

ruby script/plugin install
http://dhtml-calendar.googlecode.com/svn/trunk

The first two lines of the Application-Trace

vendor/plugins/svn/lib/extensions/active_record.rb:61:in `local'
vendor/plugins/svn/lib/extensions/active_record.rb:61:in `quote'

are pointing to a fault in the active_record.rb of the
DHTMLCalendar-plugin:

Line 61:  when Date then "'#{quoted_date(Time.local(value.year,
value.month, value.day, 0, 0, 0))}'"
        else            quote_without_date_cast(value, column)

Do somebody knows a solution?

Thanks in front.

Regs Hermann
81b61875e41eaa58887543635d556fca?d=identicon&s=25 Frederick Cheung (Guest)
on 2009-05-22 10:30
(Received via mailing list)
On May 22, 9:25 am, Herman Müller <rails-mailing-l...@andreas-s.net>
wrote:
>
>         else            quote_without_date_cast(value, column)
>
> Do somebody knows a solution?

While the ruby Date class has an absolutely massive range, Time
doesn't, so the plugin shouldn't really be converting a date instance
into a instance of Time (at least not without checking if it is
possible first)

Fred
This topic is locked and can not be replied to.