Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 用Excel处理T-SQL中的时间汇总问题_Sql Server_Excel_Tsql - Fatal编程技术网

Sql server 用Excel处理T-SQL中的时间汇总问题

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) *

我想完成一项任务,即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) * (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中实现同样的功能?