2014-02-05 83 views
0

EDIT 1如何在SQL存儲過程中添加兩個等於整數的字段?

我使用存儲的過程中插入到表中,我的列中的一個是int數據類型。將要輸入並計算到該單元中的是將數據類型time(0)分成兩次的總和。我只是有兩次這樣:

7時30分○○秒

6點45分53秒

我後來分化從最小的規模最大,然後繞着它達到最大的整數。

6:45:53/7:30:00 = 1(舍入)。

在Excel上這個工作,我期望它將7:30:00轉換爲7.5例如。

然而在SQL中,我無法使用引號輸入時間,因此不會讓我使用SUM()方法對它們進行求和。

我的SQL存儲過程(我嘗試):

INSERT INTO MyTable_1 
Values(REPLACE(NEWID(),'-',''),@pName,@pDate,SUM('07:30:00'/@pLoggedInTime),@pCallsIn,@pCallsOut,@pLoggedInTime,@pTalkTime,@pHoldTime) 

我不知道這是不是也是一個問題,但我現在用在和一個時代是從一個參數。

有沒有辦法讓SUM()兩個時間字段在SQL上產生一個整數值,就像在Excel上發生的一樣?如果是這樣,怎麼樣?

+0

我從你的描述不清楚預期的結果是從加入'什麼07:30:00'和'06:45:53'。但是請注意,SQL Server'time'數據類型特別用於存儲*時間*,而不是*時間間隔*。因此,它不支持(因爲它沒有意義)直接將這種類型的兩個值加在一起。 –

+0

@Damien_The_Unbeliever感謝您的評論。基本上,一個例子是,7:30:00/6:45:53 = 1(圓角)。在Excel中,如果您使用SUM()函數鍵入這兩個值並將其分開並以某種方式將它們轉換爲數字。這就好像它將7:30:00變成7.5。我想知道這是否可能在SQL上? – EliotE123

回答

0
CREATE TABLE #Test (
    TimeCol1 TIME(0) 
    ,Timecol2 TIME(0)) 

INSERT INTO #Test (TimeCol1, TimeCol2) VALUES ('07:30:00', '06:45:53') 
INSERT INTO #Test (TimeCol1, TimeCol2) VALUES ('06:45:53','07:30:00') 

select *, CONVERT(time, CONVERT(datetime, TimeCol2) + CONVERT(datetime, TimeCol1)) FROM #Test 
+0

謝謝你的回答,不幸的是,這不是我打算做的。也許我提出的問題有點不清楚,我會用一個例子來編輯這個問題,但是你也可能想把我的評論讀回達米安。 – EliotE123

相關問題