2015-10-21 65 views
1

在我們的應用程序中,我們遵循以下模式來節省員工所花費的時間。根據小時值計算費率SQL Server

  • 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。)

感謝您的幫助

+0

轉換的分鐘,小時值。 –

回答

2

下面是示例如何CONVER把你的人數變成幾小時,你可以乘以工資。

declare @t decimal(5,2)=1.3 

/* converting to hours */ 
select cast(@t as int)[email protected]%1*100/60 
1
cast(substring('1.30',charindex('.','1.30')+1,len('1.30')) as float)/60 
1

你可以試試這個:

DECLARE @col FLOAT 
SET @col = 1.30 

DECLARE @hours FLOAT 
SET @hours = (SELECT FLOOR(@col) + (@col - FLOOR(@col))/0.6) 

THEN wages = rate * @hours

+0

它返回我1.05 – bmsqldev

1
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