我有一個表如何使用功能在存儲過程中的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