我正在尝试获取交易所用的时间。我需要将其解压缩到一个文件。 我在Derby找到了一些不能按照我的意愿运行的SQL:
ij> create table atab1(ts timestamp, i int, ts1 timestamp);
ij> insert into atab1 values(CURRENT_TIMESTAMP, 1, CURRENT_TIMESTAMP);
1 row inserted/updated/deleted
ij> insert into atab1 values(CURRENT_TIMESTAMP, 2, CURRENT_TIMESTAMP);
1 row inserted/updated/deleted
ij> select {fn TIMESTAMPDIFF(SQL_TSI_SECOND, ts1,ts)} as TS_DIFF from atab1;
TS_DIFF
-----------
0
0
atab1表的内容是:
TS |I |TS1
-----------------------------------------------------------------------
2012-08-05 00:20:16.675 |1 |2012-08-05 00:20:16.675
2012-08-05 00:20:29.081 |2 |2012-08-05 00:20:29.081
声明:
select {fn TIMESTAMPDIFF(SQL_TSI_SECOND, ts1,ts)} as TS_DIFF from atab1;
总是给0,因为ts1和ts的值是相同的
我应该如何调整语句,以便显示ts和ts1的值之间的差异?
答案 0 :(得分:0)
看起来你应该有两个不同的行:一个是起始行,一个是结束行。每行应该有一个事务id和一个时间戳,一个应该有一个代码表明它是起始行,而另一个应该有一个代码表明它是结束行。
然后,您可以通过在其事务ID上自行加入表来选择这两行,然后您可以从结束时间中减去开始时间以获取已用时间。