2010/2/11 Jeremy Evans <[email protected]>:
> On Feb 11, 9:14 am, Simon Arnaud <[email protected]> wrote:
>> Hi
>>
>> Followinghttp://groups.google.com/group/sequel-talk/browse_thread/thread/6138e...
>
> Sequel uses IS08601 dates on SQLite:
>
>  $ sequel sqlite:/
>  Your database is stored in DB...
>  irb(main):001:0> DB.literal Date.today
>  => "'2010-02-11'"
>

I'm referering to the part where you use Date#to_s to format the date
as ISO8601, and to_s is not anymore outputting ISO8601.

$ sequel sqlite:/
Your database is stored in DB...
ruby-1.9.1-p376 > class Date
ruby-1.9.1-p376 ?>  def to_s
ruby-1.9.1-p376 ?>    strftime("%d/%m/%Y")
ruby-1.9.1-p376 ?>    end
ruby-1.9.1-p376 ?>  end
 => nil
ruby-1.9.1-p376 > DB.literal Date.today
 => "'12/02/2010'"
ruby-1.9.1-p376 >

I understand it's a bad practice to rewrite core methods, but as you
agreed back then, 'to_s' is a borderline case, and should not be
relied on anything else than outputting a String.

here is literal_date from sequel 3.8.0:
# SQL fragment for Date, using the ISO8601 format.
def literal_date(v)
  requires_sql_standard_datetimes? ? v.strftime("DATE '%Y-%m-%d'") : "'#{v}'"
end

Something like this might be better
def literal_date(v)
  iso8601_date = v.strftime("'%Y-%m-%d'")
  requires_sql_standard_datetimes? ? "DATE " + iso8601_date: iso8601_date
end

You forgot my first question also :) :
How am I supposed to change 'requires_sql_standard_datetimes?' ? Just
overwriting the method ?

regards

Simon

-- 
You received this message because you are subscribed to the Google Groups 
"sequel-talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sequel-talk?hl=en.

Reply via email to