如何计算开始和结束时间之间的总分钟数?

JM1*_*JM1 6 t-sql sql-server

如何计算开始和结束时间之间的总分钟数?开始/结束时间列是nvarchar,我将它们声明为datetime.我不确定这是否是我的第一步,我是SQL的新手并宣布.

最终目标是采取Total Minutes,减去LunchRecess(两者都是分钟)然后乘以5得到每个学校一周的总教学分钟数.

DECLARE @StartTime datetime,  @Endtime datetime

SELECT --[School]
      [GradeLevel]
      ,[StartTime]
      ,[EndTime]
      ,(@Endtime - @StartTime) AS 'TotalMinutes'
      ,[Lunch]
      ,[Resess]
      ,[Passing]
  FROM [dbo].[StartEndTimes]


Current Output:
GradeLevel  StartTime   EndTime   TotalMinutes    Lunch   Resess    Passing
 2-5         7:50        14:20      NULL            20      10       NULL
 K-5         7:45        14:20      NULL            20      10       NULL
 K-5         7:50        14:20      NULL            20      10       NULL
Run Code Online (Sandbox Code Playgroud)

jpw*_*jpw 11

也许这样的东西是你想要的?

select (datediff(minute, starttime, endtime) -lunch -recess) * 5 AS TotalInstruct
from YourTable
Run Code Online (Sandbox Code Playgroud)

如果要对所有行进行总结,请尝试:

select sum((datediff(minute, starttime, endtime) -lunch -recess) * 5) AS TotalInstruct
from YourTable
Run Code Online (Sandbox Code Playgroud)

如果您想获得每个学校的小时数,您必须school在查询中包含该字段并在group by子句中使用它,然后查询变为:

select school, sum((datediff(minute, starttime, endtime) -lunch -recess) * 5) AS TotalInstruct
from YourTable
group by school
Run Code Online (Sandbox Code Playgroud)

上述查询的示例SQL小提琴.