oracle 查詢 過去時間的記錄

2022-09-13 04:00:14 字數 1418 閱讀 5534

查詢 昨天的記錄:

select * from [table_name] where [create_date]= sysdate-1

--昨天上午10點的記錄

select * from [table_name] where [create_date]=trunc(sysdate-1) + 10/24

--上個月的記錄

select * from [table_name] where [create_date] =  to_date(to_char(sysdate,'yyyy') || to_char(sysdate,'mm')-1 ||

to_char(sysdate,'dd'),'yyyy-mm-dd')

select to_char(trunc(add_months(last_day(sysdate), -1) + 1), 'yyyy-mm-dd') "本月第一天",

to_char(last_day(sysdate), 'yyyy-mm-dd') "本月最後一天"

--oracle trunc()函式的用法

/**************日期********************/

1.select trunc(sysdate) from dual  --2011-3-18  今天的日期為2011-3-18

2.select trunc(sysdate, 'mm')   from   dual  --2011-3-1    返回當月第一天.

3.select trunc(sysdate,'yy') from dual  --2011-1-1       返回當年第一天

4.select trunc(sysdate,'dd') from dual  --2011-3-18    返回當前年月日

5.select trunc(sysdate,'yyyy') from dual  --2011-1-1   返回當年第一天

6.select trunc(sysdate,'d') from dual  --2011-3-13 (星期天)返回當前星期的第一天

7.select trunc(sysdate, 'hh') from dual   --2011-3-18 14:00:00   當前時間為14:41  

8.select trunc(sysdate, 'mi') from dual  --2011-3-18 14:41:00   trunc()函式沒有秒的精確

/***************數字********************/

/* trunc(number,num_digits)

number 需要截尾取整的數字。

num_digits 用於指定取整精度的數字。num_digits 的預設值為0。

trunc()函式擷取時不進行四捨五入

*/

Oracle 的連線查詢記錄

先 兩張表 建表語句如下 create table a id number primary key,name varchar2 20 class varchar2 40 homeaddress varchar2 200 create table b classid number primary ke...

oracle資料庫查詢過後顯示所受影響的行數

本文是在查詢過程中顯示受影響的行數,就是一共查出來幾條。適用於查詢的表的資料相當大的情況,上萬條。在其他運算元據所返回的受影響行數,就是例如我修改一下,增加一下,刪除一下。這些對資料進行操作的。想要展示受影響行數有其他函式例如sql rowcount sql rowcount用於記錄修改的條數,必須...

學習oracle查詢優化的記錄

1 新增注釋 2 減少資料庫連線 3 共享sql語句 使用佔位符 4 通過索引訪問 5 選擇最有效率的表名 oracle解析器按照從右到左的順序處理from後的表名。最後出現的表資料越少效率越快 如果有3個以上的表連線查詢,那就需要選擇交叉表 intersection table 作為基礎表,交叉表...