oraclesql时间段
1. oracle怎么写一条sql语句,一张单据,多个时间(不同时间段修改时间),怎么获取每一张单据最后修改时间。
select FD_CODE,max(fdTime)
from (select kc.FD_CODE,kl.FD_APPLY_DATE fdTime from km_asset_card kc left join km_asset_card_life kl on kc.FD_ID=kl.FD_ASSET_CARD_FDID)
group by FD_CODE
2. oracle SQL语句中怎么查询一个月内固定时间段的数据,比如9月1号到10月1号每天的八点到九点的呼叫数目
使用Oracle 函数extract(fmt from d)获取日期中的特定部分:
select count(*) from table where
SQL> select * from table where createdate
between to_date('2010-9-1','yyyy-MM-dd') and to_date('2010-10-1','yyyy-MM-dd')
and EXTRACT(hour from createdate) between '8:00' and '9:00';
3. 求一oracle查询sql语句(时间范围)
oracle date等类型是带时间部分的,所以你这个2011-07-05 只是相当于2011-07-05 00:00:00这个时刻,按你的写法大于这个时刻的是不会删除的。如果你确实要删除2011-07-05的建议你用以下写法:
delete from jf_syslog where inputtime >=date'2011-07-01' and nputtime<date'2011-07-06'
如果不担心2011-07-06 00:00:00的也可以
delete from jf_syslog where inputtime between date'2011-07-01' and date'2011-07-06'
如果效率可以接受,可以先转换成字符串
delete from jf_syslog where to_char(inputtime,'yyyymmdd') between '20110701' and '20110705'
你可以考虑连接上一个固定的字符串这样的,但是因为时间上是没有24:00:00的,所以还是会有问题的,不如直接在日期上加一天用<
4. 菜鸟求助:oracle sql语句查询相同时间段的记录
你这个问题描述不清楚啊,我暂时这么理解的:就是说旅客在一个时间段内都是住一个旅社就把记录插入到一张表,因为你的是旅客表所以旅客id是不可少的,select 旅客id from(select distinct 旅客id,旅馆id from 旅客表 where 指定时间)a group by 旅客id having count(旅馆id)=1;这个语句就是帮你拿到指定时间内只住一个旅馆的的旅客id,其他信息可以根据旅客id查询 存储过程: create or replace procere xx (v_开始时间 varchar(8),v_结束时间 varchar(8))
as
begin
c_开始时间 = to_date(v_开始时间,'yyyymmdd');
c_结束时间 = to_date(v_结束时间,'yyyymmdd');
insert into 表
select 旅客id from(select distinct 旅客id,旅馆id from 旅客表 where 指定时间 >= c_开始时间 and 指定时间<c_结束时间)a group by 旅客id having count(旅馆id)=1 ;
end ;
end xx;
5. Oracle Sql 查询按时分过滤时间区段
SQL>CREATETABLET(KSSJDATE,JSSJDATE);
表已创建。
SQL>INSERTINTOTVALUES(to_date('09:30','HH24:MI'),to_date('11:30','HH24:MI'));
已创建1行。
SQL>COMMIT;
提交完成。
SQL>SELECTTO_CHAR(KSSJ+((ROWNUM-1)/48),'HH24:MI')KSSJ,TO_CHAR(KSSJ+(ROWNUM/48),'HH24:MI')JSSJ
2FROMTCONNECTBYROWNUM<=4;
KSSJJSSJ
----------
09:3010:00
10:0010:30
10:3011:00
11:0011:30
是你说的意思不?
6. oracle sql查询语句 时间格式
可以先通过to_char将时间转换为字符串,之后通过to_date方式统一时间样式,这样就能灵活的获取时间的格式了。
sql:SELECT to_date(to_char(sysdate,'yyyy-mm-dd')||'23:59:59','yyyy-mm-dd hh24:mi:ss') FROM DUAL;
解释:以上语句就是获取到当前的最后时间点,在跳动一秒就会进入下一天。
备注:时间比较是距离1970年越远的那么时间就越大。
7. 问:Oracle SQL语句中查找时间区段具体行的数据,详细问题描述如下
因为你这个都是字符型的,在比较中容易出错
比如字符型的11 和 101相比,11就比101大,所以你这个要先转成时间戳的格式,然后再比较
select*fromtable_awhereto_timestamp(day||''||second||'.'||'mili','yyyy-mm-ddhh24:mi:ss.ff')betweento_timestamp('2013/4/18'||''||'12:40:31'||'.40','yyyy-mm-ddhh24:mi:ss.ff')and
to_timestamp('2013/4/20'||''||'12:41:31'||'.160','yyyy-mm-ddhh24:mi:ss.ff')
我擦,网络怎么给我换行弄的这么难看,应该能看懂吧?
8. oracle的sql语句中如何写时间段
每天晚上6点到第二天早上8点的数据?
按照24小时制,那可以拆分为:18~24;1~8
试试这个:
select * from tbl c
where
( to_char(c.date, 'hh24:mi:ss') >= '18:00:00' and to_char(c.date, 'hh24:mi:ss') <= '24:00:00')
or
( to_char(c.date, 'hh24:mi:ss') >= '01:00:00' and to_char(c.date, 'hh24:mi:ss') <= '08:00:00')