首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

如何在sql server内得到精确的时间间隔

2013-11-01 
怎么在sql server内得到精确的时间间隔?sql server有一个datediff函数,但是这个函数不仅返回时间间隔,还返

怎么在sql server内得到精确的时间间隔?
sql server有一个datediff函数,但是这个函数不仅返回时间间隔,还返回经过的时间边界
比如
datediff(hh,"2012-10-1 08:59:00","2012-10-1 09:01:00")

这两个时间的真实时间间隔肯定是没有1小时的,但是这个函数会返回1,因为经过了它经过了小时和小时之间的时间边界09:00:00,那我要怎么才能获得精确的和时间间隔呢

[解决办法]
精确度越粗略,得到的值越不准确,降低粒度是目前唯一的办法,本身你也不是想精确多少个小时,如果你用HH但是想精确的话,那估计结果是0,也不是你想要的结果。
[解决办法]

引用:
Quote: 引用:


--秒
SELECT datediff(ss,'2012-10-01 08:59:00','2012-10-01 09:01:00')
--分鍾
SELECT datediff(minute,'2012-10-01 08:59:00','2012-10-01 09:01:00')

你还没认真看我的帖子就回帖,我说了,过了时间边界会造成返回值+1,比如8:59到9:10分,间隔没一小时,但是越过了9:00的时间边界,如果返回单位为小时,那就是1,这个问题怎么解决,难道要我用更小的单位得到的差值再算一遍?


你说对了,一般在处理这个时间差的时候,都会用更小的单位来计算,然后再进行转换,比如间隔为2分钟:

SELECT datediff(second,'2012-10-01 08:59:00','2012-10-01 09:01:00') /60
/*
2
*/

热点排行