Oracle日期時間函式,適用於定時任務

2021-10-05 17:03:07 字數 3343 閱讀 7065

一、取得當前日期是乙個星期中的第幾天,注意星期日是第一天

select sysdate, to_char(sysdate,'d') from dual;  

sysdate

to_char(sysdate,'d')

2020/5/3 0:03:17

1類似用法:

select to_char(sysdate,'yyyy') from dual;    --年   

select to_char(sysdate,'q') from dual;        --季   

select to_char(sysdate,'mm') from dual;     --月   

select to_char(sysdate,'dd') from dual;       --日   

ddd    年中的第幾天   

ww   年中的第幾個星期   

w      該月中第幾個星期   

d       週中的星期幾   

hh      小時(12)   

hh24  小時(24)   

mi    分   

ss    秒

二、取當前日期是星期幾中文顯示

select to_char(sysdate,'day') from dual;

to_char(sysdate,'day')

星期日三、得到當天凌晨0點0分0秒的日期

select trunc(sysdate) from dual;

trunc(sysdate)

2020/5/3

-- 得到這天的最後一秒

select trunc(sysdate) + 0.99999 from dual;

trunc(sysdate)+0.99999

2020/5/3 23:59:59

-- 得到小時的具體數值

select trunc(sysdate) + 1/24 from dual;

trunc(sysdate)+1/24

2020/5/3 1:00:00

trunc(sysdate)+48/24

2020/5/5

四、得到明天凌晨0點0分0秒的日期

select trunc(sysdate + 1) from dual;

select trunc(sysdate) + 1 from dual;

trunc(sysdate+1)

2020/5/4

五、本月一日的日期

select trunc(sysdate,'mm') from dual;

trunc(sysdate,'mm')

2020/5/1

六、得到下月一日的日期

select trunc(add_months(sysdate,1),'mm') from dual;

trunc(add_months(sysdate,1),'mm')

2020/6/1

七、返回當前月的最後一天

select last_day(sysdate)  from dual; --帶時間,其餘不帶

select last_day(trunc(sysdate))  from dual;  

select trunc(last_day(sysdate))  from dual;

select trunc(add_months(sysdate,1),'mm') - 1 from dual;

last_day(sysdate)

2020/5/31 0:27:25

八、得到一年的每一天(正常365天,閏年可以大一些)

select trunc(sysdate,'yyyy')+ rn - 1 as date0 from (select rownum rn from all_objects where rownum < 368);

date0

2020/1/1

2020/1/2

...九、獲取本月第一天開始的7周的周一

-- 本月開始第一天及以後每週這一天

select trunc(sysdate,'mm') + rn * 7 - 7 as week7 from (select rownum rn from all_objects where rownum < 7)

-- 本月及下月共七周周一

select trunc(sysdate,'d') - 6 + rn * 7 as monday7 from (select rownum rn from all_objects where rownum < 7)

monday7

2020/5/4

2020/5/11

...注意,trunc(sysdate,'d')得到的是上週的周天,在美國來說相當於這週的第一天,因此

trunc(sysdate,'d')  + 1 + rn * 7 - 7 = trunc(sysdate,'d') - 6 + rn * 7)

十、今天是今年的第n天

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

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

to_char(sysdate,'ddd')

124

一、現有的日期加上2年(使用trunc截掉時間)

select add_months(sysdate,24) from dual;

add_months(sysdate,24)

2022/5/3 0:52:19

二、判斷某一天所在年分是否為潤年

select decode(to_char(last_day(trunc(sysdate,'y') + 31),'dd'),'29','閏年','平年') as leaporcommon from dual;

leaporcommon

閏年

三、得到日期的季度

select ceil(to_number(to_char(sysdate,'mm')) / 3) from dual;

select to_char(sysdate, 'q') from dual;

to_char(sysdate, 'q')

2當然,還可以衍生出許多種格式,就不一一枚舉了,相信你可以舉一反三。

多執行緒適用於阻塞式IO場景,不適用於平行計算場景

python的標準實現是cpython。cpython執行python 分為2個步驟 首先,將文字原始碼解釋編譯為位元組碼,然後再用乙個直譯器去 解釋執行位元組碼。位元組碼直譯器是有狀態的,需要維護該狀態的一致性,因此使用了gil global interpreter lock,全域性直譯器鎖 gi...

適用於python的 vimrc檔案

根據我的需求做了一些小的改動。file vimrc date 2009 09 22 author gashero note 配置乙份簡單的vim配置檔案 set nocompatible 非相容模式 syntax on 開啟語法高亮 set background dark 背景色 color des...

Extjs Form用法詳解(適用於Extjs5)

extjs form用法詳解 適用於extjs5 extjs form是乙個比較常用的控制項,主要用來顯示和編輯資料的,今天這篇文章將介紹extjs form控制項的詳細用法,包括建立form 新增子項 載入和更新資料 驗證等。本文的示例 適用於extjs 4.x和extjs 5.x,在extjs ...