SQL PL SQL語法手冊6

2021-08-27 10:28:13 字數 2610 閱讀 2053

日期函式:

1、求某天是星期幾

select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day') from dual;

星期一select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day','nls_date_language = american') from dual;

monday

設定日期語言

alter session set nls_date_language='american';

也可以這樣

to_date ('2002-08-26', 'yyyy-mm-dd', 'nls_date_language = american')

2、兩個日期間的天數

select floor(sysdate - to_date('20020405','yyyymmdd')) from dual;

3、時間為null的用法

select id, active_date from table1

union

select 1, to_date(null) from dual;

注意要用to_date(null)

4、處理月份天數不定的辦法

select to_char(add_months(last_day(sysdate) +1, -2), 'yyyymmdd'),last_day(sysdate) from dual

5、找出今年的天數

select add_months(trunc(sysdate,'year'), 12) - trunc(sysdate,'year') from dual

6、閏年的處理方法

to_char( last_day( to_date('02' || :year,'mmyyyy') ), 'dd' )

如果是28就不是閏年

7、5秒鐘乙個間隔

select to_date(floor(to_char(sysdate,'sssss')/300) * 300,'sssss') ,to_char(sysdate,'sssss')

from dual

2002-11-1 9:55:00 35786

sssss表示5位秒數

8、一年的第幾天

select to_char(sysdate,'ddd'),sysdate from dual

310 2002-11-6 10:03:51

9、floor((date2-date1) /365) 作為年

floor((date2-date1, 365) /30) 作為月

mod(mod(date2-date1, 365), 30)作為日.

23.next_day函式

next_day(sysdate,6)是從當前開始下乙個星期五。後面的數字是從星期日開始算起。

1 2 3 4 5 6 7

日一二三四五六

10、extract()

找出日期或間隔值的字段值

date_value:=extract(date_field from [datetime_value|interval_value])

sql> select extract(month from sysdate) "this month" from dual;

this month

----------

11 sql> select extract(year from add_months(sysdate,36)) "3 years out" from dual;

3 years out

-----------

2006

11、localtimestamp()

返回會話中的日期和時間

timestamp_value:=localtimestamp

sql> column localtimestamp format a28

sql> select localtimestamp from dual;

localtimestamp

----------------------------

13-11月-03 12.09.15.433000 下午

12、decode

()函式

先構造乙個例子,假設我們想給智星職員加工資,其標準是:工資在8000元以下的將加20%;工資在8000元以上的加15%,通常的做法是,先選出記錄中的工資字段值? select salary into var-salary from employee,然後對變數var-salary用if-then-else或choose case之類的流控制語句進行判斷。如果用decode函式,那麼我們就可以把這些流控制語句省略,通過sql語句就可以直接完成。如下:select decode(sign(salary - 8000),1,salary*1.15,-1,salary*1.2,salary from employee 是不是很簡潔?

使用方法:

1、比較大小

select decode(sign(變數1-變數2),-1,變數1,變數2) from dual; --取較小值

sign()函式根據某個值是0、正數還是負數,分別返回0、1、-1

基本語法 PHP手冊筆記

原文 基本語法 php手冊筆記 如果檔案內容是純php 最好在檔案末尾刪除php結束標記。這可以避免在php結束標記之後萬一意外加入了空格或者換行符,會導致php開始輸出這些空白,而指令碼中此時並無輸出的意圖。當然php開始標記前的空格或者換行符依然會輸出。下面這段 的意思很容易理解,關鍵是if e...

基本語法 PHP手冊筆記

如果檔案內容是純php 最好在檔案末尾刪除php結束標記。這可以避免在php結束標記之後萬一意外加入了空格或者換行符,會導致php開始輸出這些空白,而指令碼中此時並無輸出的意圖。當然php開始標記前的空格或者換行符依然會輸出。下面這段 的意思很容易理解,關鍵是if else的用法,這樣使用在文字輸出...

CMake CMake概覽和語法手冊

寫了關於make的教程之後,對cmake的作用也更加清晰 之前使用使用cmake會生成makefile,然後再使用make進行編譯,所以cmake其實是乙個輔助的編譯工具 makefile的語法感覺符號多且雜,不像cmake的語法比較直觀易懂 所以可以使用cmake進行人性化的cmakelists....