1樓:青鳥中關村專家
可以使用to_char()、concat()等函式實現查詢前一小時、前一天、前一個月或者前一年的資料。
1、查詢一小時
1)to_char(sysdate,'yyyy-mm-dd ')將系統當前時間轉換為字元型別,僅取出年月日
2)|| 字串連線符
3)to_char(sysdate,'hh24')-1取出系統當前時間的小時部分,hh24小時是24進位制的
4)concat是字串連線函式
select concat(to_char(sysdate,'yyyy-mm-dd ')||(to_char(sysdate,'hh24')-1),':00:00') start_time,concat(to_char(sysdate,'yyyy-mm-dd hh24'),':
00:00') end_time from dual
2、查詢前一天
1)to_char(sysdate,'yyyy-mm-dd ')將系統當前時間轉換為字元型別,僅取出年月日
2)|| 字串連線符
select to_char(sysdate-1,'yyyy-mm-dd ')||'00:00:00' start_time,to_char(sysdate-1,'yyyy-mm-dd ')||'23:
59:59' end_time from dual
3、查詢前一個月
1)to_char(sysdate,'yyyy-mm-dd ')將系統當前時間轉換為字元型別,僅取出年月日
2)|| 字串連線符
3)add_months(sysdate,-1)取出系統當前時間月部分,然後-1
4)concat是字串連線函式
select concat(to_char(sysdate,'yyyy')||to_char(add_months(sysdate,-1), '-mm-'),'01 00:00:00')start_time,
concat(to_char(sysdate,'yyyy')||to_char(add_months(sysdate,-1), '-mm-')||to_char(last_day(sysdate),'dd '),'23:59:59') end_time from dual
4、查詢前一年
1) extract(year from sysdate) 從系統日期從取出年部分
2)|| 字串連線符
3)to_char(last_day(sysdate),'dd ')取出系統日期中的最後一天
4)concat是字串連線函式
select extract(year from sysdate)-1||'-01-01 00:00:00' start_time,concat(extract(year from sysdate)-1||'-12-'||to_char(last_day(sysdate),'dd '),'23:
59:59') end_time from dual
2樓:
select count(時間)
from table
where 時間 between to_date('2013-4-18 11:06','yyyy-mm-dd hh24:mi:ss')
and to_date('2013-4-18 12:06','yyyy-mm-dd hh24:mi:ss')
在oracle中如何實現查詢某一時間段的資料?
3樓:匿名使用者
根據時間範圍查詢就好了,比如:
select * from a where a.create_date between to_date('20170101','yyyy/mm/dd') and to_date('20170531','yyyy/mm/dd')
4樓:手機使用者
select * from tb_policy
as of timestamp to_timestamp('20160112 10:00:00', 'yyyymmdd hh:
mi:ss') where (status=5 or status=6) and prod_no='2026';
5樓:
某個時間段?
請採納。。。。
6樓:匿名使用者
select * from table where column between date1 and date2
oracle中查詢時間點前後一分鐘的資料
7樓:匿名使用者
select
表.*from表,(
-- 這個子查詢, 用於查詢大於2023年09月01日 01點00分00秒,並且最小的時間datestart
select
min( datestart ) as datestart
from 表
where datestart > to_date( '2012090101', 'yyyymmddhh24' )
) mindate
where
-- datestart前後一分鐘
表.datestart between (mindate.datestart - 1/24/60) and (mindate.
datestart + 1/24/60)
-- 前面相同
-- datestart前後15分鐘
表.datestart between (mindate.datestart - 15/24/60) and (mindate.
datestart + 15/24/60)
-- 前面相同
-- datestart前後30分鐘
表.datestart between (mindate.datestart - 30/24/60) and (mindate.
datestart + 30/24/60)
-- 前面相同
-- datestart前後45分鐘
表.datestart between (mindate.datestart - 45/24/60) and (mindate.
datestart + 45/24/60)
8樓:匿名使用者
你還是列舉幾條資料吧
並且把你想要的結果也最好做個簡單的圖出來,太抽象了
oracle怎麼統計按時間段統計資料?
9樓:匿名使用者
select 號碼,count(1)
from 表
where 時間 >= concat(to_char(sysdate,'yyyy-mm-dd ')||(to_char(sysdate,'hh24')-1),':00:00')
group by 號碼
一個小時內的。
select 號碼,count(1)
from 表
where 時間 >= concat(to_char(sysdate,'yyyy-mm-dd ')||(to_char(sysdate,'hh24')-2),':00:00')
and 時間 <= concat(to_char(sysdate,'yyyy-mm-dd ')||(to_char(sysdate,'hh24')-1),':00:00')
group by 號碼
1個小時內出現的不記在2個小時內。
oracle 查詢時間 問題
10樓:匿名使用者
寫法有很多種,例如下面的:
方法一:select * from dual where time between to_date('2012-06-18 00:00:
00','yyyy-mm-dd hh24:mi:ss') and to_date('2012-06-18 23:
59:59','yyyy-mm-dd hh24:mi:
ss');
方法二:select * from dual where to_char(time,'yyyy-mm-dd')='2012-06-18';
方法三:select * from dual where trunc(time)=to_date('2012-06-18','yyyy-mm-dd');
當然樓主也可以按上面的先轉換下日期的顯示格式再查詢撒,都可以的,呵呵!!!
11樓:金久利
select to_char(sysdate,'yyyymmdd') from dual;
先對時間格式進行設定。
alter session set nls_date_format='yyyy-mm-dd';
12樓:厙曼冬
select * from dual where trunc(time) = to_date('2012-06-18','yyyy-mm-dd');
oracle 中如何選擇每天某個時間段中的資料,如每天7點到11點的資料? 5
13樓:鄭梧桑思萌
你可以把時間全部to_char成字串型別,然後根據長度判斷,如果是隻精確到天的話,長度肯定是10,把長度為10的欄位修改為精確到每天8點。
to_date(to_char(qsrq,'yyyy-mm-dd')||
08:00:00,'yyyy-mm-dd
hh24:mi:ss')
14樓:
1,表裡需要有一個date型別的欄位,假設欄位名為tempdate2,實行下面的sql文
select * from 表
where to_char(tempdate,'hh24') between '7' and '11'
--這裡用的是24小時計時方式
15樓:匿名使用者
select * from 表
where to_char(tempdate,'hh24:mi') between '00:00' and '11:00'
我在plsql裡面必須這樣寫,只寫小時會僅限制到最後那天的11點。
16樓:
select * from table where to_char(datecolumn,'hh24') between '7' and '11'
17樓:匿名使用者
select * from table t where to_char(t.date, 'hh24:mi:
ss') >= '07:00:00' and to_char(t.
date, 'hh24:mi:ss') <= '11:
00:00'
oracle 用sql查詢一個時間段每天的資料量
18樓:匿名使用者
按日做彙總啊:
select trunc(datecol) 日期,sum(數量) 數量和,count(1) 資料量
from tablex
where to_char(datecol,'yyyymm') = '201305'
group by trunc(datecol);
oracle資料庫如何查詢表資料量
1 檢視錶空間的大小,首先我們要登入到oracle資料庫,我們要使用管理員的身份登入,因為管理員的許可權要相對的大一些。2 登入到資料庫之後,我們要在側邊欄找到dataspace這個資料夾,這個資料夾下存放的就是我們管理員可以管理的所有的表空間的名稱。3 根據dataspace資料夾下的內容名稱,選...
oracle查詢資料時如何去掉後面的括號內容
樓主您好 第二列kcmc 可以用regexp replace kcmc,替換查詢 那個括號應該是全形的,注意函式裡的括號也是全形的如果有全形的或者半形的可以替換成 select regexp replace 畢業 全 2 from dual union select regexp replace 畢...
在oracle資料庫中,怎樣查詢出只有欄位的表的重複資料
方法一 可以通過group by 進行分組。sql select username,count username from tablename grop by username 解釋 以上sql就是通過分組函式讀版取出tablename表中username的值和每個不 權同值的統計個數。方法二 可以...