Trac Reportでの日付の扱い(その1)
チケットのDB(ticket/ticket_change)の日付項目はUnixタイムスタンプなので比較しようとすると変換が必要で、幾つか書き方のパターンがあるけど単純比較の場合は
SELECT status, resolution,id AS ticket, summary, priority, severity, reporter, time AS created, changetime AS modified FROM ticket WHERE date(changetime,'unixepoch','localtime') > '2008-06-30'
のようにする。そうすると6月30日以降に変更されたチケットの一覧が表示される。
ここで気をつけなきゃ行けないのは時間がUTCで記録されているので、ちゃんとunixepochとlocaltimeを指定してあげないと、時差の分だけ微妙に抽出結果が変わってくるので注意が必要。
これを応用して
SELECT status, resolution,id AS ticket, summary, priority, severity, reporter, time AS created, changetime AS modified FROM ticket WHERE date(changetime,'unixepoch','localtime') > '$DT'
としてあげると日付部分がパラメータになり、wikiで
[report:22?DT=2008-06-01 ひげほげ]
と書いて一つのレポートで可変の抽出が出来るので結構便利。