2014-02-24 134 views
0

表中的3個字段:START_DATE,END_DATE,DIFF。所有三個都是DATETIME字段。我想要一個觸發器(AFTER UPDATE)來計算DIFF字段中START_DATE和END_DATE值之間的時間差。我希望結果如下:01日 - 12小時 - 15分鐘。我怎樣才能做到這一點?我也想知道它是如何完成的,即顯示時差的方式,以便DIFF顯示類似於27:15:00的內容。計算兩個日期時間字段之間的小時差的觸發器

這似乎工作:

CREATE TRIGGER [DIFF] 
AFTER UPDATE OF [end_date] 
ON [Table1] 
BEGIN 
UPDATE Table1 SET DIFF = 
cast(
     (
        strftime('%s',Table1.end_date)-strftime('%s',Table1.start_date) 
     ) AS INT 
    )/60/60 ; 
END 
+1

如何與德爾福這個問題? –

+0

對於[觸發器](http://www.sqlite.org/lang_createtrigger.html)和[日期/時間函數](http://www.sqlite.org/lang_datefunc.html)文檔的哪些特定部分是否適合您不明白? –

+0

您正在將存儲格式化。日期時間字段包含時間戳。如何向用戶呈現時間戳與觸發器無關。 – adrianm

回答

0

據我所知,這工程確定:

CREATE TRIGGER [TIME_DIFFERENCE] 
AFTER UPDATE OF [end_date] 
ON [Table1] 
BEGIN 
UPDATE Table1 SET DIFF = 
cast(
     (
        strftime('%s',Table1.end_date)-strftime('%s',Table1.start_date) 
     ) AS INT 
    )/60/60 ; 
END 
相關問題