# Year Wierdness

**URL:** <https://www.ruby-forum.com/t/year-wierdness/180606>\
**Category:** Rails\
**Created:** [December 22, 2009, 8:57pm UTC](https://www.ruby-forum.com/t/year-wierdness/180606 "2009-12-22T20:57:19Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![rilindo](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/c2a13f/32.png) [@rilindo](https://www.ruby-forum.com/u/rilindo)\
**Post date:** [December 22, 2009, 8:57pm UTC](https://www.ruby-forum.com/t/year-wierdness/180606/1 "2009-12-22T20:57:19Z")

</div>

Why is Rails displaying date like:

Sat Jan 01 13:31:00 UTC 2000

When the date is clearly correct in the database:

reverseblade\_development=\> select \* from blogs;  
id | postdate | posttitle | post | created\_at |  
updated\_at  
----±---------±-----------±------±---------------------------±---------------------------  
4 | 13:31:00 | Test again | again | 2009-12-22 18:32:06.800273 |  
2009-12-22 18:32:06.800273

Here is the code that displays the date:

\<% @blogs.each do |blog| %\>  
\<%=h blog.postdate%\>  
  
\<%=h blog.posttitle %\>  
  
\<%=h blog.post %\>  
  
\<%= link\_to ‘Show’, blog %\>  
\<%= link\_to ‘Edit’, edit\_blog\_path(blog) %\>  
\<%= link\_to ‘Destroy’, blog, :confirm =\> ‘Are you sure?’, :method =\>  
:delete %\>  
\<% end %\>

Is there some sort of conversion that I am missing someplace?

- Rilindo

–

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 removed\_email\_address@domain.invalid.  
To unsubscribe from this group, send email to  
removed\_email\_address@domain.invalid.  
For more options, visit this group at  
[http://groups.google.com/group/rubyonrails-talk?hl=en](http://groups.google.com/group/rubyonrails-talk?hl=en).

---

<div class="post-metadata">

**Author:** ![rilindo](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/c2a13f/32.png) [@rilindo](https://www.ruby-forum.com/u/rilindo)\
**Post date:** [December 22, 2009, 9:03pm UTC](https://www.ruby-forum.com/t/year-wierdness/180606/2 "2009-12-22T21:03:28Z")

</div>

Rilindo F. wrote:

> Why is Rails displaying date like:
> 
> Sat Jan 01 13:31:00 UTC 2000
> 
> When the date is clearly correct in the database:
> 
> reverseblade\_development=\> select \* from blogs;  
> id | postdate | posttitle | post | created\_at |  
> updated\_at  
> ----±---------±-----------±------±---------------------------±---------------------------  
> 4 | 13:31:00 | Test again | again | 2009-12-22 18:32:06.800273 |  
> 2009-12-22 18:32:06.800273

Your ‘postdate’ is stored as … Just a time! So Rails defaults to Jan.  
01, 2000.  
You may want to do a migration and change your column to a datetime… ?  
As usual, beware of modifying pre-existing data.

---

<div class="post-metadata">

**Author:** ![rilindo](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/c2a13f/32.png) [@rilindo](https://www.ruby-forum.com/u/rilindo)\
**Post date:** [December 22, 2009, 9:11pm UTC](https://www.ruby-forum.com/t/year-wierdness/180606/3 "2009-12-22T21:11:57Z")

</div>

Quoting Rilindo F. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> \<% end %\>

Note: postdate column is a TIME (13:31:00), i.e. time of day. Use a  
datetime  
type in the database.

HTH,  
Jeffrey

–

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 removed\_email\_address@domain.invalid.  
To unsubscribe from this group, send email to  
removed\_email\_address@domain.invalid.  
For more options, visit this group at  
[http://groups.google.com/group/rubyonrails-talk?hl=en](http://groups.google.com/group/rubyonrails-talk?hl=en).

---

<div class="post-metadata">

**Author:** ![rilindo](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/c2a13f/32.png) [@rilindo](https://www.ruby-forum.com/u/rilindo)\
**Post date:** [December 22, 2009, 10:10pm UTC](https://www.ruby-forum.com/t/year-wierdness/180606/4 "2009-12-22T22:10:29Z")

</div>

On Dec 22, 2009, at 11:54 AM, Rilindo F. wrote:

> ±---------------------------  
> 4 | 13:31:00 | Test again | again | 2009-12-22 18:32:06.800273 |  
> 2009-12-22 18:32:06.800273

postdate doesn’t look like a date to me. It looks like a time…

> =\> :delete %\>  
> To post to this group, send email to rubyonrails-  
> removed\_email\_address@domain.invalid.  
> To unsubscribe from this group, send email to removed\_email\_address@domain.invalid  
> .  
> For more options, visit this group at [http://groups.google.com/group/rubyonrails-talk?hl=en](http://groups.google.com/group/rubyonrails-talk?hl=en)  
> .

–

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 removed\_email\_address@domain.invalid.  
To unsubscribe from this group, send email to  
removed\_email\_address@domain.invalid.  
For more options, visit this group at  
[http://groups.google.com/group/rubyonrails-talk?hl=en](http://groups.google.com/group/rubyonrails-talk?hl=en).

---

<div class="post-metadata">

**Author:** ![rilindo](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/c2a13f/32.png) [@rilindo](https://www.ruby-forum.com/u/rilindo)\
**Post date:** [December 22, 2009, 9:40pm UTC](https://www.ruby-forum.com/t/year-wierdness/180606/5 "2009-12-22T21:40:03Z")

</div>

Oh my goodness you’re right.

Unfortunately, I couldn’t seem to change the column type gracefully with  
postgres:

# (in /Users/rilindo/src/rrproj/reverseblade) == ModifyPostdateColumn: migrating

– change\_column(:blogs, :postdate, :datetime)  
rake aborted!  
An error has occurred, this and all later migrations canceled:

PGError: ERROR: column “postdate” cannot be cast to type  
“pg\_catalog.timestamp”  
: ALTER TABLE “blogs” ALTER COLUMN “postdate” TYPE timestamp

# (See full trace by running task with --trace) tristan:reverseblade rilindo$ rake db:migrate (in /Users/rilindo/src/rrproj/reverseblade) == ModifyPostdateColumn: migrating

– change\_column(:blogs, :postdate, :datetime)  
rake aborted!  
An error has occurred, this and all later migrations canceled:

PGError: ERROR: column “postdate” cannot be cast to type  
“pg\_catalog.timestamp”  
: ALTER TABLE “blogs” ALTER COLUMN “postdate” TYPE timestamp

I ended up having to rename the column and added a new one:

class ModifyPostdateColumn \< ActiveRecord::Migration  
def self.up  
rename\_column :blogs, :postdate, :old\_postdate  
add\_column :blogs, :postdate, :datetime  
end

def self.down  
remove\_column :blogs, :postdate  
rename\_column :blogs, :old\_postdate, :postdate  
end  
end

Now It is displaying the right date. Thanks!

On Dec 22, 2009, at 3:10 PM, Jeffrey L. Taylor wrote:

> > 4 | 13:31:00 | Test again | again | 2009-12-22 18:32:06.800273 | 2009-12-22 18:32:06.800273  
> > \<%= link\_to ‘Destroy’, blog, :confirm =\> ‘Are you sure?’, :method =\> :delete %\>
> 
> You received this message because you are subscribed to the Google G. “Ruby on Rails: Talk” group.  
> To post to this group, send email to removed\_email\_address@domain.invalid.  
> To unsubscribe from this group, send email to removed\_email\_address@domain.invalid.  
> For more options, visit this group at [http://groups.google.com/group/rubyonrails-talk?hl=en](http://groups.google.com/group/rubyonrails-talk?hl=en).

–

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 removed\_email\_address@domain.invalid.  
To unsubscribe from this group, send email to  
removed\_email\_address@domain.invalid.  
For more options, visit this group at  
[http://groups.google.com/group/rubyonrails-talk?hl=en](http://groups.google.com/group/rubyonrails-talk?hl=en).
