search datetime column for all records that start at 11:00

M

Morgan Morgan

i have to count how many records are in a database that have a start
time of 11:00 for an entire year. the problem is, i can't seem to find
out how to coax rails into ignoring the date to just search for a time.
 
A

Ammar Ali

Morgan said:
i have to count how many records are in a database that have a start
time of 11:00 for an entire year. the problem is, i can't seem to find
out how to coax rails into ignoring the date to just search for a time.

If I understand your question correctly, then this is handled
differently by different databases.

For example, mysql uses DATE_FORMAT/TIME_FORMAT, sqlite uses STRFTIME,
and PostgreSQL uses the powerful extract/to_char. See the manual for
your specific database on how to extract and format parts of the a
datetime column for use it in comparisons/queries.

From rails, you could specify this custom SQL as a :condition to find,
or use execute(sql).

The last time I needed similar functionality, I didn't find any built-in
methods to accomplish this in rails. Would like to know if one exists
and I somehow missed it.

hth,
ammar
 
S

Seebs

i have to count how many records are in a database that have a start
time of 11:00 for an entire year. the problem is, i can't seem to find
out how to coax rails into ignoring the date to just search for a time.

The simplest solution: Do that part of the check yourself, so just have
Rails hand you the whole query and you do the heavy lifting.

-s
 
M

Morgan Morgan

Ammar said:
If I understand your question correctly, then this is handled
differently by different databases.

For example, mysql uses DATE_FORMAT/TIME_FORMAT, sqlite uses STRFTIME,
and PostgreSQL uses the powerful extract/to_char. See the manual for
your specific database on how to extract and format parts of the a
datetime column for use it in comparisons/queries.

From rails, you could specify this custom SQL as a :condition to find,
or use execute(sql).

The last time I needed similar functionality, I didn't find any built-in
methods to accomplish this in rails. Would like to know if one exists
and I somehow missed it.

hth,
ammar


from what i can tell it's not directly possible to search for a time
match without a full date/time. i'm already using sphinx for others
stuff and ended up using sphinx for this also. tried doing the search
for an entire year other ways but they were all stupidly slow. sphinx
is it
 
M

Marnen Laibow-Koser

Morgan said:
i have to count how many records are in a database that have a start
time of 11:00 for an entire year. the problem is, i can't seem to find
out how to coax rails into ignoring the date to just search for a time.

Simple: use the SQL functions hour() and minute() in your :conditions
hash.

Note that Rails questions should really go on the Rails list, not here.

Best,
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
474,160
Messages
2,570,889
Members
47,423
Latest member
henerygril

Latest Threads

Top