1

時間値を持つ行を持つデータベースがあります。その時間値の合計が必要です (通常、形式は %H:%M です)。

私はそのようなSUM値を使用しました:

SELECT SUM(n_hores) FROM table;

しかし、私だけが0.0を取得します。

どうすればそれができますか?

ありがとう

4

2 に答える 2

2

formatの時間値hh:mmは文字列であり、文字列を意味のある合計にすることはできません。

これらの時刻の値を数値に変換する必要があります (strftime(%s)は 1970 年 1 月 1 日からの秒数を返すため、時刻の値に対応する秒数を取得するには、1 日の始まりからオフセットを減算する必要があります)。

SELECT sum(strftime('%s', MyTime) - strftime('%s', '00:00')) FROM MyTable

この秒数を時間文字列にtime()戻すこともできます (形式で返しhh:mm:ssます)。

SELECT time(sum(strftime('%s', MyTime) - strftime('%s', '00:00'))) FROM MyTable
于 2013-03-05T14:17:12.783 に答える
1

おそらく、「最後のエポック (現代エポック) からのミリ秒数」を取得して、2 つの日付を差し引いたほうがよいでしょう。SQLite には、最後のエポックからのミリ秒数を返す関数が必要です。これを見つけたら、解決策は単純な減算と秒、分、および/または時間への変換です。

于 2013-03-05T14:02:10.367 に答える