我有两个两个时间戳字段(START,END)和一个Integer类型的TIME_DIFF字段。我正在尝试计算START和END字段之间的时间。我创建了一个触发器来执行此操作:
CREATE TRIGGER [TIME_DIFF]
AFTER UPDATE OF [END]
ON [KLOG]
BEGIN
update klog set TIME_DIFF =
cast(
(
strftime('%s',KLOG.END) -
strftime('%s',KLOG.START)
) as INT
) / 60/60;
END
这给了我整个小时的结果。忽略0到59分钟之间的任何事情。
我想知道如何修改此触发器以便以小数显示?
意思是,如果时差为1小时59分钟,结果将显示为1.59。如果时差为35分钟,则显示0.35。
答案 0 :(得分:1)
要将秒数解释为时间戳,请使用unixepoch
modifier。然后,您只需使用strftime()
格式化值:
strftime('%H:%S',
strftime('%s',KLOG.END) - strftime('%s',KLOG.START),
'unixepoch')
如果您使用Julian天而不是秒,则不需要单独的修饰符:
strftime('%H:%S',
julianday(KLOG.END) - julianday(KLOG.START))