我正試圖將這個Excel公式寫入T-SQL中(寫一個函式)。
預期的輸出是0.71944444,但目前我的輸出(使用T-SQL)是24.0000.
。我不確定為什么我們要在同一日期上增加一天,并在同一日期上減去一天。
底部是Excel的截圖:
這是我目前在T-SQL中的情況:
CREATE FUNCTION [dbo].[fn_0921] (
@Punch_Start nvarchar(max)
)
RETURNS decimal(36, 8) AS
BEGIN(開始)。
DECLARE @return_value nvarchar(max)。
SET @return_value =
DATEDIFF(
MINUTE, CAST(@Punch_Start AS datetime2) 。
(
日期加(
day, 1, CAST(@Punch_Start AS datime2)
)
)
)
/ (60.0)
RETURN @return_value
END;
謝謝你的幫助。
uj5u.com熱心網友回復:
這可能可以幫助你:
DECLARE @date DATETIME2 = '2021-07-25 06:44'
DECLARE @seconds INT = DATEDIFF(second, CAST(@date AS date), @date)
DECLARE @secondsFromEnd FLOAT = 86400 - @seconds
SELECT @secondsFromEnd / 86400
uj5u.com熱心網友回復:
Excel公式回傳的是K4單元格中的資料時間與;第二天的開始時間(即7/26/2021 00:00)之間的差值,是一整天的零頭。以下是T-SQL中的等價物:
DECLARE @Punch_Start datetime2 = '7/25/2021 06。 44'。
SELECT DATEDIFF(
MINUTE,
@Punch_Start,
CAST(
CAST(
DATEADD(DAY, 1, @Punch_Start)
AS date) -- 在@Punch_Start &上增加1天;鑄成日期以去除時間成分--這就是第二天的開始。
AS datetime2) -- Cast back to datetime2以得到分鐘的差異。
) / 1440.; --用分鐘數的差異除以一天的分鐘數(每小時60分鐘,每天24小時),得到一天的分數差異。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/332786.html
標籤:

