Sqlite 在Trac自定义报告中包括关闭日期

Sqlite 在Trac自定义报告中包括关闭日期,sqlite,report,trac,Sqlite,Report,Trac,我使用以下内容显示已关闭的票证,新关闭的票证位于顶部: SELECT p.value AS __color__, id AS ticket, summary, component, version, milestone, t.type AS type, owner, status, time AS created, changetime AS _changetime, description AS _descrip

我使用以下内容显示已关闭的票证,新关闭的票证位于顶部:

SELECT 
   p.value AS __color__,
   id AS ticket, 
   summary, 
   component,
   version,
   milestone,
   t.type AS type, 
   owner, 
   status,
   time AS created,
   changetime AS _changetime,
   description AS _description,
   reporter AS _reporter
  FROM ticket t
  LEFT JOIN enum p ON p.name = t.priority AND p.type = 'priority'
  WHERE status = 'closed'
  ORDER BY changetime DESC, time DESC, CAST(p.value AS integer), milestone, t.type, time
以下是当前显示的列:

Ticket
Summary
Component
Version
Milestone
Type
Owner
Status
Created

我想将关闭日期添加到报告视图中(可能还有显示日期差异的第三列)。我该怎么办

要在报表视图上显示字段,而不仅仅是RSS提要,请从列名中删除前导下划线<代码>变更时间,因为_changetime是违规行;尝试将其更改为
将时间更改为关闭状态
。注意:您可能需要将其像
datetime(changetime/1000000,'unixepoch')一样修复为关闭状态


要获得日期差,请尝试减去两列,每列都包含在对SQLite
julianday
函数的调用中,比如
julianday('now')-julianday(changetime/1000000,'unixepoch')作为closedago
添加closed日期并不像我想象的那样简单。下面的示例将告诉您诀窍:

SELECT p.value AS __color__,
       ticket, summary, component, version, milestone, t.type, owner,
       t.time AS created,
       MAX(tc.time) as date
  FROM ticket_change tc
  LEFT JOIN ticket t ON tc.ticket=id
  LEFT JOIN enum p ON p.name = t.priority AND p.type = 'priority'
 WHERE field='status'
   AND newvalue='closed'
 GROUP by ticket
 ORDER BY tc.time DESC, t.time DESC, CAST(p.value AS integer), milestone, t.type

您需要“ticket_change”db表上的联接和last first排序,才能可靠地获取最后一个关闭日期。

好的,这种工作方式--关闭显示,但日期为(unixtime?):1351278660897600。如果我将其更改为changetime as date,则会显示一个格式化的日期,但列标题只显示“date”。如果changetime已关闭,则不会有好运-仍然会获得时间戳date'会正常工作。我用julianday函数得到这个值:| 10/11/11已创建| 10/17/12已关闭|-1.35049337095e+15 |噢,我想你必须除以1000000。。。这是微秒的unixepoch时间戳。@请检查我的编辑。这不是你必须划分的日期,而是
changetime
中的值。但是请注意,你的概念有一个缺陷:票据在结束后不是r/o,所以最后一次更改可能是为了状态以外的其他原因,请想一想:进一步的评论。因此,这完全取决于组织协议,以确保状态-->“关闭”实际上是最后一次更改。IMHO不是该报告的可靠基础,但YMMV。因此,没有一种方法可以准确测量门票实际关闭的时间?事实上,这是一个反复出现的问题,可能值得在Trac的wiki中提供一个食谱示例。我也将在此处听取建议。报告执行失败:编程错误:列“p.value”必须出现在GROUP BY子句中或用于聚合函数行2:选择p.value作为颜色,^哪个Trac版本有此问题?我一直在用Trac 1.1.1进行测试。我想,这就是原因,我正在用1.0进行测试,一旦升级,我会再试一次,谢谢!