在我们的应用程序中,我们遵循以下模式来节省员工花费的时间。
- 30分钟= 0.30
- 1小时= 1
所以如果一个员工工作1小时30分钟,那么小时值将是1.30.
我们还使用下面的公式计算每个员工的工资。
wages = rate * hours
如果一个雇员的时薪是50$
,那么他1小时30分钟的工资就是75$
。但是根据我们的数据结构我们得到了
wages = 50 * 1.30 = 65
我怎样才能得到正确的工资?
(注意:我们不允许改变表中的数据结构。即使1小时30分钟为1.50)
Thanks for the help
下面是如何将数字转换为小时数的示例,您可以将其乘以工资。
declare @t decimal(5,2)=1.3
/* converting to hours */
select cast(@t as int)+@t%1*100/60
cast(substring('1.30',charindex('.','1.30')+1,len('1.30')) as float)/60
DECLARE @Hours DECIMAL(18,2)
DECLARE @Rate MONEY
SET @Rate = 50
SET @Hours = 1.3
SELECT (CAST(@Hours AS INT) + (@Hours - CAST(@Hours AS INT))/.6)*@Rate
你可以试试:
DECLARE @col FLOAT
SET @col = 1.30
DECLARE @hours FLOAT
SET @hours = (SELECT FLOOR(@col) + (@col - FLOOR(@col))/0.6)
THEN wages = rate * @hours