我有一个表如何使用功能在存储过程中的SQL Server 2008
UserTime
(
UserTimeId(pk)
,DAY
,Date
,CheckIn
,CheckOut
,HOURS
)
上运行时,当我点击CheckIn
按钮,把它插入当前时间
ALTER procedure [dbo].[InsertCheckIn]
@UserID INT,
@Day varchar(50),
@Date nvarchar(50),
@CheckIn nvarchar (50)
as
begin
insert into UserTime (Userid, [Day], Date, CheckIn)
values (@UserID, @Day, @Date, @CheckIn)
end
,并在结账时,我插入当前时间。
ALTER procedure [dbo].[UpdateCheckOut]
@UserID INT,
@Day varchar(50),
@Date nvarchar(50),
@CheckOut nvarchar (50)
as
begin
update UserTime
set UserId = @UserID
,[Day] = @Day
,[Date] = @Date
,CheckOut = @CheckOut
from UserTime
where UserId = @UserId
end
我有一个函数
DATEADD(SECOND, - DATEDIFF(SECOND, @CheckOut, @CheckIn), @HoursWorked)
是需要存储的时间值的差异。
我想在Hours
栏中存储此差异。
当我插入CheckIn - >存储当前时间。 关于CheckOut,我想存储那个时间以及Hours
的区别。
我如何能实现呢?
添加一些示例数据。 –
对不起,说你的数据类型乱七八糟,你不能在'nvarchar(50)'值上使用'DATEDIFF()'函数。您需要使用适当的数据类型。例如对日期列使用DATE数据类型,并且不要将SQL Server关键字用于列名。您在您的过程中使用了UserID列,因为它似乎不存在于您的表模式中。 –
@Serpiton我对此很陌生。你能举一个如何做到这一点的例子吗? – user2525244