0

Sql Server 2008 を使用して、時間、分、秒を合計する必要があります

フィールドには時間値のみが含まれます。

入力

ID       HORA_S  
--  ----------------------
1   1899-12-30 18:22:50.000
2   1899-12-30 18:22:50.000
3   1899-12-30 18:30:50.000

出力

HOURS  MINUTES SECONDS
----   ---     --------
55     16      30

このコードで遊んだ後、私は解決しました!!!

SELECT  SUM(DATEPART(hh, CAST(HORA_S AS DATETIME))) 
        + ( SUM(DATEPART(MINUTE, CAST(HORA_S AS DATETIME))) / 60 )
        + ( SUM(DATEPART(MINUTE, CAST(HORA_S AS DATETIME))) % 60
        + ( SUM(DATEPART(SECOND, CAST(HORA_S AS DATETIME))) / 60 ) ) / 60 AS HORAS,
    ( SUM(DATEPART(MINUTE, CAST(HORA_S AS DATETIME))) % 60
        + ( SUM(DATEPART(SECOND, CAST(HORA_S AS DATETIME))) / 60 ) ) % 60 AS MINUTOS,
    SUM(DATEPART(SECOND, CAST(HORA_S AS DATETIME))) % 60 AS SEGUNDOS FROM Table
4

1 に答える 1

2

これは、コードを少し減らした実際の例です

サンプルテーブル

DECLARE @T TABLE (ID int, HORA_S datetime)
insert @T values
(1, '1899-12-30 18:22:50.000'),
(2, '1899-12-30 18:22:50.000'),
(3, '1899-12-30 18:30:50.000')

;WITH T(V) AS (
    SELECT convert(datetime,SUM(convert(float, 2+hora_s)))
    FROM @T
)
SELECT
    [HOURS]   = floor(convert(float,V)*24),
    [MINUTES] = DATEPART(MI,V),
    [SECONDS] = DATEPART(SS,V)
FROM T

storing time only注: クエリの 2+ は、日付部分が常に になることを前提としています1899-12-30。Delphi がその日付を day として使用していることは知っています0

于 2012-09-19T04:47:23.310 に答える