如何计算自定义时间(如上午8:30到下午18:00)之间的天数是一天oracle sql查询
有谁能帮我查询oracle两个日期之间的日期吗?提交记录后只计算8:30到6:00的下午 如果在上午8:30到下午6:00之间提交记录,则计一天。如果在下午6:00后提交记录,则将在下一天进行记录 如果在下午6:00后提交记录,将在接下来的几天内记录: 如果要按天计算日期,从前一天的18:00开始计算到当天的18:00,则只需在截断日期之前加上6小时减1秒,然后按该日期分组:如何计算自定义时间(如上午8:30到下午18:00)之间的天数是一天oracle sql查询,sql,oracle,datetime,oracle11g,count,Sql,Oracle,Datetime,Oracle11g,Count,有谁能帮我查询oracle两个日期之间的日期吗?提交记录后只计算8:30到6:00的下午 如果在上午8:30到下午6:00之间提交记录,则计一天。如果在下午6:00后提交记录,则将在下一天进行记录 如果在下午6:00后提交记录,将在接下来的几天内记录: 如果要按天计算日期,从前一天的18:00开始计算到当天的18:00,则只需在截断日期之前加上6小时减1秒,然后按该日期分组: 选择TRUNC(日期列+间隔“5:59:59”小时到秒)作为日期列, 计数(*) 从表\u名称 分组 TRUNC(日期列
选择TRUNC(日期列+间隔“5:59:59”小时到秒)作为日期列,
计数(*)
从表\u名称
分组
TRUNC(日期列+间隔“5:59:59”小时到秒)
订购人
日期栏;
其中,对于样本数据:
将表格名称(日期列)创建为
选择日期“2020-01-01”+级别*间隔“1”小时
来自双重
按级别连接您可以尝试使用案例
:如果日期列被称为基准
(如我的示例中所示),并且其时间在18:00(即下午6点)之后,则将其设置为“明天上午10点”(以便适合第二天)。否则,以“今天”的日期为准。大概是这样的:
with data as
(select t.*,
case when to_char(t.datum, 'hh24mi') > '1800' then trunc(t.datum + 1) + 10/24
else t.datum
end datum
from your_table t
)
select trunc(d.datum) datum,
count(*)
from data d
group by trunc(d.datum)
18:00:01
在18:00:00
之后,但在19:00:00
之前,它不会移动到第二天。对!谢谢你,修好了。
with data as
(select t.*,
case when to_char(t.datum, 'hh24mi') > '1800' then trunc(t.datum + 1) + 10/24
else t.datum
end datum
from your_table t
)
select trunc(d.datum) datum,
count(*)
from data d
group by trunc(d.datum)