I have a working DBIx::Class resultset which looks roughly like this:
my $tasks_to_do = $self->search(
{
-and => [ scheduled_run_time => { '<=
+', 'NOW()'}, status => 'pending' ]
}
);
But I need that "NOW()" to be in Sydney, Australia time, not the server time which is UTC.
In the script which calls this ResultSet method I've got both
BEGIN {
$ENV{TZ} = 'Australia/Sydney';
}
and
$schema->storage->dbh_do(sub {"SET TIMEZONE='Australia/Sydney'"} );
But it still returns no records.
Due diligence: I know there are records because if I go in to the db manually and do this:
sessions=> SET TIMEZONE='UTC';
SET
sessions=> select * from mytable where scheduled_run_time <= NOW() and
+ status = 'pending';
I get "no rows", but if I do this:
sessions=> SET TIMEZONE='Australia/Sydney';
SET
sessions=> select * from mytable where scheduled_run_time <= NOW() and
+ status = 'pending';
I get the expected number of records.
TIA. I have had my coffee by the way.
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.