select a日期,max(a时间 - b时间) as 最大间隔,min(a时间 - b时间) as 最小间隔
from
((select 日期,cast ((日期 + " " + 时间) as datetime) as 时间
from 表) a
inner join
(select 日期,cast ((日期 + " " + 时间) as datetime) as 时间
from 表) b
on a日期 =b日期) c
group by a日期
select datediff(day,‘2010-12-1’,‘2010-12-3’)
返回的结果是 2
当然你也可以从表中选择出来的两个的字段,
SELECT datediff(day,date1,date2) FROM date_dbdate_table
返回的是 date2-date1 之间的天数
上面是计算的是在数据库date_db中表date_table中时间时段date1与date2之间的相隔天数
你的时间保存数据类型是什么?date么?如果是date,判断时间点所属范围,如果开始时间属于14-18,结束时间属于9-12,并且时间相减的结果大于1,那么就可以得到结果为,时间相减(得到答案为天)24-时间相减取整数(trunc)17+2,如果如果开始时间属于14-18,结束时间属于9-12,并且时间相减的结果小于1,那么结果为,时间相减(得到答案为天)24-15,其他情况均为时间相减(得到答案为天)24-时间相减取整数(trunc)17。
注:时间相减得到的应该是带有小数的。(这些是可以用case when语句搞定的,不过日期这块可能还需要调整,我仅仅靠想象是想不出来了,还要靠你自己试验)
如果是字符类型的,那么就用 to_date转一下,或者直接计算减法都可以,具体的判断和上面差不多。
用 datediff来算天数
select [人名或是代码],[借书时间],[还书时间],datediff(day,[借书时间],[还书时间]) '借书天数' from [表名]
以上就是关于sql 求时间字段相隔最短和最长的怎么取全部的内容,包括:sql 求时间字段相隔最短和最长的怎么取、SQL 数据库如何计算两个日期的简隔时间,以下图为例!、oracle db 如何用一条sql查询2个时间之间的工作时间间隔等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)