スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Tengでgroup byやDateTimeをWhere句に書く方法

http://kinjouj.hatenablog.jp/category/Perl?page=1327244400
http://d.hatena.ne.jp/ktat/20111205/1323023021
http://d.hatena.ne.jp/ktat/20120111/1326211861

group by はうまくいったが、問題はWhere句のほう・・・
DateTimeオブジェクトをWhere句の中に書いてみたらエラーとなった。

my $dt = DateTime->now( time_zone => 'local' );

my ($entries, $pager) = $self->app->db->search_by_sql_abstract_more_with_pager(+{
-columns => [qw/t.item v.name/],
-from => [
'-join',
'tweet|t',
't.verb_id = verb.id',
'verb|v'
],
-where => +{ 't.isseud_at' => $dt },
-group_by => ['item'],
-order_by => ['count(*) DESC'],
-page => 1,
-rows => 5
});




@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@ Teng 's Exception @@@@@
Reason : Not an ARRAY reference at /usr/lib/perl5/site_perl/5.14/Teng.pm line 234.



Where句にオブジェクトを渡すことはできないのかな??
アレイリファレンスでないといけないとはどういうことなんだろう。


いろいろ試行錯誤したらできたーーーー。。
カウントもできたー。

my $dt1 = DateTime->now( time_zone => 'local' )->add( days => -3 );
my $dt2 = DateTime->now( time_zone => 'local' );

my $self = shift;

my $page = $self->param('page') || 1;
my ($entries, $pager) = $self->app->db->search_by_sql_abstract_more_with_pager(+{
-columns => [qw/t.item v.name count(*)|count/],
-from => [
'-join',
'tweet|t',
't.verb_id = v.id',
'verb|v'
],
-where => +{ 't.issued_at' =>
+{ 'between' => [ DateTime::Format::MySQL->format_datetime($dt1),
DateTime::Format::MySQL->format_datetime($dt2) ] }},
-group_by => ['t.item','v.name'],
-order_by => ['count(*) DESC'],
-page => $page,
-rows => 20
});

スポンサーサイト

コメントの投稿

非公開コメント

プロフィール

鈍足ランナー

Author:鈍足ランナー
作成アプリ

Learn from AlphaGeeks
Twinani


最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。