首页 > 解决方案 > 将 Excel 公式(使用日期和减法)转换为 T-SQL

问题描述

我正在尝试将此 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), 
                                        (
                                            dateadd(
                                                    day, 1, CAST(@Punch_Start AS datetime2)
                                                    )
                                        )  
                            ) 
                    / (60.0)            
    RETURN @return_value
END;

感谢帮助。

标签: tsqlexcel-formuladatetime2

解决方案


这可能会帮助您:

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

推荐阅读