oraclesql當天的數據
1. oracle 用sql查詢一個時間段每天的數據量
按日做匯總啊:
selecttrunc(datecol)日期,sum(數量)數量和,count(1)數據量
fromtablex
whereto_char(datecol,'yyyymm')='201305'
groupbytrunc(datecol);
2. oracle 查詢一段時間內每一天的統計數據sql怎麼寫
可以寫一個簡單的procere來實現,原理是遍歷日期范圍,並查詢日期資料筆數,寫入表。
數據源表test03
1 2016-06-01 1
2 2016-06-02 1
3 2016-06-05 1
4 2016-06-04 1
5 2016-06-04 1
procere代碼如下:
create or replace procere loop_by_date(pbeg_tim in varchar2,--開始日期
pend_tim in varchar2,--結束日期
errmessage out varchar2) is
nCount number(10); --總天數
i_point number(10); --當天
is_zero number(10); --當天是否有記錄
begin
nCount := 0;
i_point := 0;
is_zero := 0;
select ROUND(to_date(pend_tim, 'yyyy-mm-dd') -
to_date(pbeg_tim, 'yyyy-mm-dd'))
into nCount
from al;
delete from test02;
<<fst_loop>>
loop
select count(*)
into is_zero
from test03
where date1 =
to_char(to_date(pbeg_tim, 'yyyy-mm-dd') + i_point, 'yyyy-mm-dd');
insert into test02
(date01, nccount)
values
(to_char(to_date(pbeg_tim, 'yyyy-mm-dd') + i_point, 'yyyy-mm-dd'),
is_zero);
i_point := i_point + 1;
exit fst_loop when i_point >= nCount;
end loop fst_loop;
--end;
end loop_by_date;
傳入參數"2016-06-01"~~"2016-06-10"並執行,結果寫入test02為:
1 2016-06-01 1
2 2016-06-02 1
3 2016-06-03 0
4 2016-06-04 2
5 2016-06-05 1
6 2016-06-06 0
7 2016-06-07 0
8 2016-06-08 0
9 2016-06-09 0
3. oracle資料庫 date時間類型查詢昨天、前7天、前30天、前1年的數據,sql語句怎麼寫
1、打開plsql,連接上oracle資料庫,使用sql語句創建一張測試表。
4. 急求:在oracle中獲取表中離當天最近的那天的所有數據,sql怎麼寫,謝了。
select * from tableName where to_number(to_char(dateColumnName,'yyyymmdd')) = (select to_number(to_char(max(dateColumnName),'yyyymmdd')) from tableName where dateColumnName< sysdate)
上述語句,假如表名為tableName,日期欄位為dateColumnName,且為日期類型。
5. sql語句如何查日期欄位的某天的數據
1、創建測試表,
create table test_date(id varchar2(20), v_date date);
6. Oracle sql 查詢時間在當天內的數據 怎麼查詢
select * from 表名 where to_char(欄位名,'yyyymmdd') = to_char(sysdate,'yyyymmdd');
這樣寫試一下,看看是否好用。
7. sql如何一次取出2天的數據(有時候某些天沒數據),求思路
按照你給的說法和例子( 1號3條數據,2號沒有數據,3號2條數據,),那麼所謂的一次兩天,應該是取出1號和3號的5條數據,是這個意思吧。
假設4,5號都有數據,那麼現在是(1有數據,2沒數據,3有數據,4有數據,5有數據)其他不算,就說這五天
那麼你說的一次取出兩天的數據怎麼取?從後往前,還是從前往後,亦或是隨便取?還是多次取,每兩天的都取出來?給的需求並不是十分明確。
個人認為最大的可能是從後往前,或者某一個時間段往前或者往後。
如果是數據塊的話很好寫,定義兩個變數,兩個初始都是0,我們假設為a,b,a代表有數據天數,b代表天數。輸入當前日期(查詢日期),然後在表內對當前日期進行count計數,如果計數不為0,那麼a=a+1,b=b±1(根據向前還是向後查詢自己分配),如果計數為0,那麼只b±1,然後判斷一下a是否等於2,如果a不等於2,那麼繼續循環,直到循環出現兩個計數不為0的天,那麼a=2了,然後就能退出循環,這是查詢出的內容就是兩天的。
如果是單條sql的話,考慮到查詢的當天可能也沒有數據,比如你要查詢2號(包含)往後的兩天(一般來說是2號和3號的數據),但是2號沒有數據,所以輸出的應該是3號和4號的數據。
單獨的sql好像能寫出來,我說一個思路,開窗函數,你對找出來的數據,比如大於等於2號的數據進行排序,這個排序是開窗(oracle的話這里用rank,其他數據不知道),其他資料庫不知道)的排序,(不分組,按照日期的截取到日去排序,也就是不算具體的時間,而是1號,2號,這樣的排序)這時,3號的所有數據會被標記為1,4號的所有數據被標記為2,然後再截取排序號小於等於2的就可以了。
其他的還有,不過要麼是計數,要麼是開窗排序,而且不一定能寫出來,或者就算寫出來了,可能也比較耗費資源,估計可用性不大。
8. oracle 查詢一段時間內每一天的統計數據sql怎麼寫
還有這么到的???2015-09-01到2014-09-12
select date,count(*) as number from table_name where date = '2015-09-01'
union
select date,count(*) as number from table_name where date = '2015-09-02'
如果天數比較少 可以這么干,如果比較多可以寫存儲過程,循環搞