嗨,大家好我有这样的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