Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL Server时间差(以小时为单位)为整数_Sql_Sql Server_Datetime_Stored Procedures_Stored Functions - Fatal编程技术网

SQL Server时间差(以小时为单位)为整数

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时,我正在使用服务器上的

我有一个带有开始时间和结束时间的表,在点击按钮时插入。 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时,我正在使用服务器上的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
组件,则无法正确计算经过的时间。