嗨,大家好我有這樣的c#問題,然後我寫了一個計算員工工時的計劃,計算總小時數(Ore Fine - Ore Inizio - Pausa)計算的查詢。我的問題是,暫停必須以小時,分鐘格式插入(例如,1.30)如何計算員工使用以下查詢的總時間?我希望我已經解釋計算在SqlServer上暫停工作所花的時間 - C#
OreInizio爲datetime
OreFine爲datetime
保薩是浮法
嗨,大家好我有這樣的c#問題,然後我寫了一個計算員工工時的計劃,計算總小時數(Ore Fine - Ore Inizio - Pausa)計算的查詢。我的問題是,暫停必須以小時,分鐘格式插入(例如,1.30)如何計算員工使用以下查詢的總時間?我希望我已經解釋計算在SqlServer上暫停工作所花的時間 - C#
OreInizio爲datetime
OreFine爲datetime
保薩是浮法
嘗試`dbo.RisorseUmane.Pausa`專欄的
select
[IdRisorseUmane],
[IdUtente],
[IdCantiere],
CONVERT(varchar(5), DATEADD(minute, DATEDIFF(minute, [OreInizio], [OreFine]) - cast([Pausa] * 60 as int), 0), 114) as [TotaleOre]
from [RisorseUmane]
where [IdCantiere] = @id;
先取這兩個日期時間列值之間的差異用pausa * 60
減去它(使其成爲分鐘)。
查詢
select [IdRisorseUmane], [IdUtente], [IdCantiere],
cast(cast((
datediff(minute, [OreInizio], [OreFine]) - ([Pausa] * 60)) as int)/60 as varchar) + ':'
+ right('0' + cast(cast((
datediff(minute, [OreInizio], [OreFine]) - ([Pausa] * 60)) as int) % 60 as varchar(2)), 2)
as [TotaleOre]
from [RisorseUmane]
where [IdCantiere] = @id;
像你這樣where IdCantiere='" + IdCantiere + "'
不要單引號內傳遞值。
它對SQL注入攻擊是開放的。始終使用參數。
什麼是數據類型? –
is float @BogdanSahlean – riki