SQL Server中的时差
我在SQL Server中有一个返回时间差的函数:SQL Server中的时差,sql,sql-server,Sql,Sql Server,我在SQL Server中有一个返回时间差的函数: create function [dbo].[GetTimeDiffrence] (@dutyHour time, @ShiftTime time) returns time(0) as begin declare @result time(0); declare @null time; set @null = '00:00:00'; select @result = case
create function [dbo].[GetTimeDiffrence] (@dutyHour time, @ShiftTime time)
returns time(0)
as
begin
declare @result time(0);
declare @null time;
set @null = '00:00:00';
select
@result = case
when DATEDIFF(SECOND, @dutyHour, @ShiftTime) <= 0
then DATEADD(SECOND, -DATEDIFF(SECOND, @dutyHour, @ShiftTime), @null)
when DATEDIFF(SECOND, @dutyHour, @ShiftTime) > 0
then DATEADD(SECOND, DATEDIFF(SECOND, @dutyHour, @ShiftTime), @null)
end
return @result;
end
GO
我得到一个错误:
从字符转换日期和/或时间时转换失败
绳子
还有,我怎样才能得到负数的差值呢?问题在于您的
时间
参数。声明为时间的变量,范围从00:00:00到23:59:59。看一看
发送“大于”24小时的值将不起作用。问题在于
时间
参数。声明为时间的变量,范围从00:00:00到23:59:59。看一看
发送“大于”24小时的值将不起作用。问题在于
时间
参数。声明为时间的变量,范围从00:00:00到23:59:59。看一看
发送“大于”24小时的值将不起作用。问题在于
时间
参数。声明为时间的变量,范围从00:00:00到23:59:59。看一看
发送“更大”的值24小时以上不起作用。使用间隔数据类型而不是时间?@jarlh在SQL Server中是否有这样的数据类型?使用间隔数据类型而不是时间?@jarlh在SQL Server中是否有这样的数据类型?使用间隔数据类型而不是时间?@jarlh在SQL Server中是否有这样的数据类型?使用间隔数据类型而不是时间?@jarlh是否有这样的数据类型SQL Server中的数据类型?在db中存储48小时30分钟的最佳方式是什么。@Vikky您真的想存储它吗?或者你真的想找出两个日期之间的差异?我有一个假设,实际上是员工加班,如果工作时间是08:00:00,而他只工作了07:30:00,我必须显示-00:30:00,在月报上,我必须从总数中扣除这半个小时overtime@Vikky您是否在表上运行此函数?我觉得你可以用一个简单的聚合来解决你的问题。您是否有一个带有
员工id
、每天工作时间
、天
或类似内容的表格?用db存储48小时30分钟的最佳方式是什么。@Vikky您真的想存储这个吗?或者你真的想找出两个日期之间的差异?我有一个假设,实际上是员工加班,如果工作时间是08:00:00,而他只工作了07:30:00,我必须显示-00:30:00,在月报上,我必须从总数中扣除这半个小时overtime@Vikky您是否在表上运行此函数?我觉得你可以用一个简单的聚合来解决你的问题。您是否有一个带有员工id
、每天工作时间
、天
或类似内容的表格?用db存储48小时30分钟的最佳方式是什么。@Vikky您真的想存储这个吗?或者你真的想找出两个日期之间的差异?我有一个假设,实际上是员工加班,如果工作时间是08:00:00,而他只工作了07:30:00,我必须显示-00:30:00,在月报上,我必须从总数中扣除这半个小时overtime@Vikky您是否在表上运行此函数?我觉得你可以用一个简单的聚合来解决你的问题。您是否有一个带有员工id
、每天工作时间
、天
或类似内容的表格?用db存储48小时30分钟的最佳方式是什么。@Vikky您真的想存储这个吗?或者你真的想找出两个日期之间的差异?我有一个假设,实际上是员工加班,如果工作时间是08:00:00,而他只工作了07:30:00,我必须显示-00:30:00,在月报上,我必须从总数中扣除这半个小时overtime@Vikky您是否在表上运行此函数?我觉得你可以用一个简单的聚合来解决你的问题。您是否有一个包含员工id、每天工作时间、每天工作时间等类似内容的表格?
SELECT [dbo].[GetTimeDiffrence_test] ('48:00:00','48:30:00')