【发布时间】:2012-09-19 12:47:23
【问题描述】:
我需要使用 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
【问题讨论】:
-
不清楚..你能解释一下你是如何得出结果的吗?
-
您知道任何有助于计算两个日期之间差异的函数吗?您是否尝试在总秒数内获得结果?你能想出如何从几秒缩短到几分钟或几小时吗?提示:一分钟有 60 秒,一小时有 3600 秒。
-
您的所有
HORA_E值是否都发生在同一日期(1899-12-30)?您是否查看过使用DATEDIFF()来获取总秒数,然后使用除法和模来获取您的小时、分钟和秒?
标签: sql sql-server sql-server-2008