SQL Server时间差(以小时为单位)为整数
我有一个带有开始时间和结束时间的表,在点击按钮时插入。 Starttime被插入和EndTime我还想计算整数形式的工作时间 当我单击EndTime按钮时SQL Server时间差(以小时为单位)为整数,sql,sql-server,datetime,stored-procedures,stored-functions,Sql,Sql Server,Datetime,Stored Procedures,Stored Functions,我有一个带有开始时间和结束时间的表,在点击按钮时插入。 Starttime被插入和EndTime我还想计算整数形式的工作时间 当我单击EndTime按钮时 tblWork StartTime | EndTime | WorkingHours 07:04:23 13:45:20 ? select Cast(CONVERT(VARCHAR(10), Getdate( ),10 ) - '07:04:23' AS INT) 当我单击EndTime时,我正在使用服务器上的
tblWork
StartTime | EndTime | WorkingHours
07:04:23 13:45:20 ?
select Cast(CONVERT(VARCHAR(10), Getdate( ),10 ) - '07:04:23' AS INT)
当我单击EndTime时,我正在使用服务器上的GETDATE()计算工作时间
请帮助我只需要一天中的时间而不是日期此答案假设SQL Server基于语法 如果“工作时间”的定义与
datediff()
(已通过的小时数边界)中的定义相匹配,则使用:
datediff(hour, starttime, endtime) as workinghours
或者,如果您想要60分钟的小时数,则使用一个小单位可以计算:
datediff(second, starttime, endtime) / (60 * 60) as workinghours
更常见的是,我建议使用十进制小时,使用:
datediff(second, starttime, endtime) / (60.0 * 60) as workinghours
是这些数据返回的内容的示例。此答案假设SQL Server基于语法 如果“工作时间”的定义与
datediff()
(已通过的小时数边界)中的定义相匹配,则使用:
datediff(hour, starttime, endtime) as workinghours
或者,如果您想要60分钟的小时数,则使用一个小单位可以计算:
datediff(second, starttime, endtime) / (60 * 60) as workinghours
更常见的是,我建议使用十进制小时,使用:
datediff(second, starttime, endtime) / (60.0 * 60) as workinghours
是这些数据返回内容的一个示例。用您正在使用的数据库标记您的问题。请说明整数应该是什么。这些列的类型是
(n)varchar
还是?如果您的工作日跨越午夜会发生什么?如果没有日期
组件,您将无法正确计算所用时间。请使用您正在使用的数据库标记您的问题。请说明整数应该是什么。这些列的类型是(n)varchar
还是?如果您的工作日跨越午夜会发生什么?如果没有date
组件,则无法正确计算经过的时间。