sql 求时间字段相隔最短和最长的怎么取

sql 求时间字段相隔最短和最长的怎么取,第1张

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个时间之间的工作时间间隔等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9788416.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存