请检查屏幕截图,以便您了解列和我的需求。
我的问题是:
1) 我有2列,from_time,until_time。 我需要计算差异,以便我可以报告小时数。 示例:from_time = 11:35,till_time = 12:35> time_worked = 01:00
如何进行计算,以便我可以进行选择,并报告类似"选择总计' working_hours'分组由Can_bill'"
组成2) 我有一些程序:
SELECT
[ROW_ID]
,[User_Name]
,[Date]
,[From_Time]
,[Till_Time]
,[Customer_Name]
,[Product_Name]
,[Type_Of_Service]
,[Can_Bill]
,[Type_Impliment]
,[Notes]
FROM [SG_Hours].[dbo].[Working_Hours_CheckIn]
Where User_Name = '@Login'
And MONTH(Date) = MONTH(GetDate())
现在,我需要创建相同的东西,但是我没有获取最新的月份报告,而是需要用户选择月份,然后输出特定月份的报告。 (它在BI应用程序上实现,因此我只需要代码\过程,并且UI将得到充分肯定。)
非常感谢!!!你是最好的
答案 0 :(得分:0)
这将给出Time Worked
(分钟):
SELECT (CONVERT(INT, REPLACE(
CONVERT(VARCHAR(8), till_time, 108),
':',
''
)
) -
CONVERT(INT, REPLACE(
CONVERT(VARCHAR(8), from_time, 108),
':',
''
)
) ) As time_worked FROM [SG_Hours].[dbo].[Working_Hours_CheckIn]
如果您想将分钟转换为Time
,可以将其转换为:
set @num = 1500000; -- the resault of minutes
select dateadd(hour, (@num / 1000000) % 100,
dateadd(minute, (@num / 10000) % 100,
dateadd(second, (@num / 100) % 100,
dateadd(millisecond, (@num % 100) * 10, cast('00:00:00' as time ))))) As time_worked