2015-01-02 25 views
0

我試圖寫一個回合一個時間的功能相同的查詢作爲MRound時間綜述功能SQL一樣MROUND在Excel

(例如:= MROUND(情節中字10:10:000 ,「1:15」))函數。

我想將給定的時間綜合爲75 minutes [1 Hr and 15 Min]

我試圖寫一個相同的查詢,但我的excel出把[對於給定的輸入]不與SQL查詢的輸出匹配。[期待輸出相同的Excel]

目前我使用下面的代碼但是輸出與Excel Mround函數輸出不匹配。

DECLARE @RoundedTime smalldatetime 
DECLARE @Multiplier float 
DECLARE @Time datetime 
DECLARE @RoundTo float 

set @Time='1900-1-1 00:00:00' 
set @RoundTo=1.25 

SET @Multiplier= 24.00/@RoundTo 
SET @RoundedTime= ROUND(CAST(CAST(CONVERT(varchar,@Time,121) AS datetime) AS float) * @Multiplier,0)/@Multiplier 

select @RoundedTime 

防爆 - 在Excel中,如果我想圓了"01-01-1900 12:00:00 AM"日期,那麼它會給"00-01-1900 23:45"作爲輸出,但在SQL它會給"1900-01-01 00:00:00"

能否請你幫我解決這個問題。

+0

'00-01-1900 23:45'不是有效的日期時間值,我們沒有任何月份或日期在'00',這個建議的輸出可以是'31-12-1899 23:45 '或'01-01-1900 23:45' –

+0

1.你能粘貼你在Excel中使用的確切公式嗎?據我所知,它可以處理數字數據而不是日期,所以我懷疑你的公式提取了幾小時然後解決了 - 我可能錯了,所以我想要一個可以插入到excel中的工作公式。 2.您可以將一些樣本輸入與預期輸出結果進行比較,以便在我發佈之前最終確認我的解決方案。 –

回答

0
DECLARE @Time datetime 
DECLARE @RoundTo float 

set @Time='1900-1-1 00:00:00' 
set @RoundTo=1.25 


SELECT CAST(@Time AS DATETIME) + 
      CONVERT(DATETIME, DATEADD(MINUTE, 60 * @RoundTo, 0)); 


RESULT: 1900-01-01 01:15:00.000 
+0

謝謝您的回覆,但查詢輸出與Excel MRound函數輸出不匹配。 – user2331918