TSQL datediff 问题
TSQL datediff issue
我刚刚发现使用真实数据
datediff(SECOND, TimeStart, TimeEnd) / 60
与
不一样
datediff(MINUTE, TimeStart, TimeEnd)
我用过这个SELECT
:
SELECT
DATEDIFF(SECOND, TimeStart, TimeEnd) AS seconds,
DATEDIFF(SECOND, TimeStart, TimeEnd) / 60 AS Mins1,
DATEDIFF(MINUTE, TimeStart, TimeEnd) AS Mins2
我得到了这些结果:
seconds mins1 mins2
-------------------------
236 3 4
620 10 10
536 8 9
443 7 8
692 11 12
1038 17 18
SUM 56 61
谁能解释一下?
获得两次 T-SQL 分钟差异的正确方法是什么?
这实际上包含在 documentation:
Returns the count (signed integer) of the specified datepart
boundaries crossed between the specified startdate and enddate.
问题是用户想要该函数做其他事情。因此,2016-12-31 23:59:59 和 2017-01-01 00:00:01 之间的年数是 1 年——即使 date/time 值相隔 2 秒。
这就是 datediff()
的有经验的用户选择可用的最小合理单位(秒或毫秒)然后从中导出更高单位的原因之一。 las,这几个月都不起作用,但它对大多数单位都有效。
我刚刚发现使用真实数据
datediff(SECOND, TimeStart, TimeEnd) / 60
与
不一样datediff(MINUTE, TimeStart, TimeEnd)
我用过这个SELECT
:
SELECT
DATEDIFF(SECOND, TimeStart, TimeEnd) AS seconds,
DATEDIFF(SECOND, TimeStart, TimeEnd) / 60 AS Mins1,
DATEDIFF(MINUTE, TimeStart, TimeEnd) AS Mins2
我得到了这些结果:
seconds mins1 mins2
-------------------------
236 3 4
620 10 10
536 8 9
443 7 8
692 11 12
1038 17 18
SUM 56 61
谁能解释一下?
获得两次 T-SQL 分钟差异的正确方法是什么?
这实际上包含在 documentation:
Returns the count (signed integer) of the specified datepart boundaries crossed between the specified startdate and enddate.
问题是用户想要该函数做其他事情。因此,2016-12-31 23:59:59 和 2017-01-01 00:00:01 之间的年数是 1 年——即使 date/time 值相隔 2 秒。
这就是 datediff()
的有经验的用户选择可用的最小合理单位(秒或毫秒)然后从中导出更高单位的原因之一。 las,这几个月都不起作用,但它对大多数单位都有效。