Sql server 用Excel处理T-SQL中的时间汇总问题
我想完成一项任务,即Excel的75分钟汇总输出和sql server的75分钟汇总输出对于日期时间输入应该是相同的结果。我在SQLServer中使用了以下函数Sql server 用Excel处理T-SQL中的时间汇总问题,sql-server,excel,tsql,Sql Server,Excel,Tsql,我想完成一项任务,即Excel的75分钟汇总输出和sql server的75分钟汇总输出对于日期时间输入应该是相同的结果。我在SQLServer中使用了以下函数 CREATE FUNCTION [dbo].[RoundTime] (@Time DATETIME, @RoundToMin INT) RETURNS DATETIME AS BEGIN RETURN ROUND(CAST(CAST(CONVERT(VARCHAR,@Time,121) AS DATETIME) AS FLOAT) *
CREATE FUNCTION [dbo].[RoundTime] (@Time DATETIME, @RoundToMin INT)
RETURNS DATETIME
AS
BEGIN
RETURN ROUND(CAST(CAST(CONVERT(VARCHAR,@Time,121) AS DATETIME) AS FLOAT) * (1440/@RoundToMin),0)/(1440/@RoundToMin)
END
GO
SELECT dbo.roundtime('11/2/2012 9:22:00',75)
我得到的上述查询结果是2012-11-02 08:51:00
我在Excel=MROUND A1中应用的相同场景,时间0,75,0公式,输入相同'11/2/2012 9:22:00 AM'
Excel结果为2012年11月2日8:45
我相信Excel的结果是正确的,我希望在SQL server中获得相同的结果
有没有其他方法可以完成此任务?你好,卡维,对不起,我不懂t-SQL,所以我无法帮助您解决具体问题,但我想知道您期望的结果。在Excel中,至少MROUND公式会给出不同日期相同时间的不同时间,因为75分钟并不能精确地划分为一天,例如,2012年2月12日上午9:22将转换为2012年2月12日上午9:45-这是必需的结果,还是您希望在任何一天都得到相同的时间?谢谢您的回复Barry。我知道如果我们使用75分钟,它不会精确地划分为一天,每天将有15分钟的间隔。但是我希望时间和你的例子完全一样,而不是整天都是一样的汇总时间。如何在T-SQL中实现同样的功能?