Trac sqlite日期查询

Trac sqlite日期查询,sqlite,datetime,timestamp,trac,Sqlite,Datetime,Timestamp,Trac,我有一个地狱的时间生成一个报告与日期的创建我的票 这是我的sqlite查询(我直接查询数据库) .header打开 .模式csv .output opentickets.csv 选择不同的 id作为票据,摘要,状态,优先级,t.type作为类型, 所有者,创建时的时间 来自票证t,票证\自定义q p.name=t.priority和p.type='priority'上的左连接枚举p 其中t.id=q.票据和状态“已关闭” 按优先级、时间顺序排列; 但我在创建时得到的价值是垃圾: 我得到1341

我有一个地狱的时间生成一个报告与日期的创建我的票

这是我的sqlite查询(我直接查询数据库)

.header打开
.模式csv
.output opentickets.csv
选择不同的
id作为票据,摘要,状态,优先级,t.type作为类型,
所有者,创建时的时间
来自票证t,票证\自定义q
p.name=t.priority和p.type='priority'上的左连接枚举p
其中t.id=q.票据和状态“已关闭”
按优先级、时间顺序排列;
但我在创建时得到的价值是垃圾: 我得到1341324096360000 我该什么时候回家 2012-07-03

我已经尝试过unix时间转换。。。 查询:

.header打开
.模式csv
.output opentickets.csv
选择不同的
id作为票据,摘要,状态,优先级,t.type作为类型,
所有者,创建时的日期时间(时间,'unixepoch')
来自票证t,票证\自定义q
p.name=t.priority和p.type='priority'上的左连接枚举p
其中t.id=q.票据和状态“已关闭”
按优先级、时间顺序排列;
我得到:-1413-03-0113:07:12


我遗漏了什么?

Unix时间戳以秒为单位,但这些值似乎是微秒:

> SELECT datetime(1341324096360000 / 1000000, 'unixepoch');
2012-07-03 14:01:36

CL以微秒为单位存储时间是正确的。您可以在中看到,时间字段是int64,在for.12中,表示他们已将时间从“自历元起秒数”更改为“自历元起微秒数”

至于我在Trac查询中显示时间的经验,我不需要做任何转换。下面是一个查询,我使用它来显示过去7天内所有更改的票据。如您所见,我在select和Trac格式中正确显示了票证更改时间。Trac将自动将创建、修改、日期、时间字段格式化为日期和/或时间。有关更多详细信息,请参见此

    SELECT 
tc.Ticket AS ticket, 
tc.Time as time, 
c.value as  __group__,
ifnull(tc.Newvalue,0) as total,
tc.Author  AS author,         
tc.Field as field     
from ticket_change tc 
LEFT JOIN ticket t on t.id = tc.ticket
LEFT JOIN ticket_custom c on c.ticket = tc.ticket and c.name= 'customer'
LEFT JOIN ticket_custom tt on tt.ticket = tc.ticket and tt.name = 'totalhours'
where field = 'hours' and c.Value is not null
and tc.Time > strftime('%s',CURRENT_DATE-7) +0
and tc.Time < strftime('%s',CURRENT_DATE) +0
and tc.Author = $USER
and tt.value is not null
我希望这有帮助

> SELECT datetime(1341324096360000 / 1000000, 'unixepoch');
2012-07-03 14:01:36
    SELECT 
tc.Ticket AS ticket, 
tc.Time as time, 
c.value as  __group__,
ifnull(tc.Newvalue,0) as total,
tc.Author  AS author,         
tc.Field as field     
from ticket_change tc 
LEFT JOIN ticket t on t.id = tc.ticket
LEFT JOIN ticket_custom c on c.ticket = tc.ticket and c.name= 'customer'
LEFT JOIN ticket_custom tt on tt.ticket = tc.ticket and tt.name = 'totalhours'
where field = 'hours' and c.Value is not null
and tc.Time > strftime('%s',CURRENT_DATE-7) +0
and tc.Time < strftime('%s',CURRENT_DATE) +0
and tc.Author = $USER
and tt.value is not null
strftime('%m/%d/%Y', time / 1000000, 'unixepoch', 'localtime')