[Dbix-class] Writing a query with a BETWEEN in the WHERE clause and the to_date(function)

Karen Hoofnagle karen at hoofnagle.org
Mon Sep 21 17:45:21 GMT 2009


Are you suggesting the code should look like this:

    $rs = $c->model('DB::User_Read_Log')->search(
         {
          datetime =>{"between", [\"to_date(?, 'YYYYMMDD HH24:MM:SS')"  
=>$start." 00:00:00", \"to_date(?, 'YYYYMMDD HH24:MM:SS')" => $end. "  
00:00:00"] }
         }
);

I still get the same error (pasted again below).

ERROR: DBIx::Class::ResultSet::all(): DBIx::Class::ResultSet::all():  
[SQL::Abstract::_where_field_BETWEEN] Fatal: special op 'between'  
requires an arrayref of two values (or a scalarref or arrayrefref for  
literal SQL) at /home/khoofnag/svn/RCN-TEADWeb/script/../lib/RCN/ 
TEADWeb/Controller/WorkOrder.pm line 93


On Sep 21, 2009, at 12:47 PM, Will Hawes wrote:

> 2009/9/21 Karen Hoofnagle <karen at hoofnagle.org>:
>> I need to create the following query using DBIx:Class (assume I'm  
>> using the
>> most recent release of DBIx::Class)
>> select * from user_read_log where datetime between to_date(20090101,
>> 'YYYYMMDD') and to_date(20091001, 'YYYYMMDD')
>> I've read the section of SQL::Abstract dealing with arrayrefs and  
>> scalarrefs
>> and I am clearly not getting it. I've screwed around with a bunch of
>> different syntaxes and am missing the mark.
>> This is just one of my attempts to make this thing fly:
>>
>>   $rs = $c->model('DB::User_Read_Log')->search(
>>         {
>>          datetime =>{"between", \["to_date(?, 'YYYYMMDD HH24:MM:SS')"
>> =>$start. " 00:00:00",
>>                                                      "to_date(?,  
>> 'YYYYMMDD
>> HH24:MM:SS')" => $end. " 23:59:59"]
>>          }
>>
>>         }
>>         );
>
> IIRC you need to pass in an arrayref containing two scalarrefs as  
> follows:
>
> datetime => { "between", [ \"to_date(...)", \"to_date(...)" ] }
>
> _______________________________________________
> List: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbix-class
> IRC: irc.perl.org#dbix-class
> SVN: http://dev.catalyst.perl.org/repos/bast/DBIx-Class/
> Searchable Archive: http://www.grokbase.com/group/dbix-class@lists.scsys.co.uk




More information about the DBIx-Class mailing list