Oracle日誌 trunc日期的使用

2021-10-23 09:39:07 字數 3060 閱讀 3970

用於處理日期返回指定格式或者所需要指定的值

trunc(date,param)

date:日期資料

param:指定的格式,預設的代表是當天的0點

trunc(date)預設的使用

select to_char(sysdate,

'yyyy-mm-dd hh24:mi:ss'

)"系統當前時間"

, to_char(trunc(sysdate)

,'yyyy-mm-dd hh24:mi:ss'

)"當天的凌晨12."

from dual t;

ps:這裡的dual是oracle的系統表,常吧它稱為偽表,具體的用途點這裡點這裡

返回當年的第一天

select to_char(trunc(sysdate,

'yy'),

'yyyy-mm-dd'

)"當年第一天"

from dual;

select to_char(trunc(sysdate,

'yyyy'),

'yyyy-mm-dd'

)"當年第一天"

from dual;

select to_char(trunc(sysdate,

'year'),

'yyyy-mm-dd'

)"當年第一天"

from dual;

季度相關

tips:一年有四個季度,也就是沒三個月稱之為乙個季度

select to_char(trunc(sysdate,

'q')

,'yyyy-mm-dd'

)"當前季度的第一天"

from dual;

那如果我想要看當前季度的最後一天的日期的話,那就只要加三個月就是下個季度啦,然後再減一天或者減乙個小時就能顯示當個季度的最後一天,同理檢視任何季度都能用這個方法

select to_char(trunc(add_months(sysdate,3)

,'q')-

1,'yyyy-mm-dd hh24:mi:ss'

)"當前季度的最後一天"

from dual;

檢視上個季度最後一天的23.30分

--因為日期的單位是按照天來算的,所以如果要將其轉換為分鐘數要對其相應的單位換算:一天有24個小時,所以半個小時也就是30分鐘則為0.5/24*60

select to_char(trunc(sysdate,

'q')

-0.5/24

,'yyyy-mm-dd hh24:mi:ss'

)"上個季度的最後一天"

from dual;

月份相關

返回當前月第一天

select to_char(trunc(sysdate,

'm')

,'yyyy-mm-dd '

)"當前月第一天"

from dual;

select to_char(trunc(sysdate,

'month'),

'yyyy-mm-dd '

)"當前月第一天"

from dual;

檢視當前月的最後一天

--檢視當前月最後一天可以用last_day函式

select to_char(trunc(last_day(sysdate)),

'yyyy-mm-dd '

)"當前月最後一天"

from dual;

週數相關

返回當前周的第一天,星期天為第一天

ps:菜雞我的當前系統時間為2020.7.14 星期二

select to_char(trunc(sysdate,

'd')

,'yyyy-mm-dd '

)"本週的第一天"

from dual;

select to_char(trunc(sysdate,

'day'),

'yyyy-mm-dd '

)"本週的第一天"

from dual;

檢視下個星期五的日期

--next_day:返回下乙個星期幾的日期,這裡第一天代表的是星期天,所以星期五就是第六天了

select to_char(next_day(trunc(sysdate,

'd')+7

,6),

'yyyy-mm-dd '

)"下週星期五"

from dual;

小時相關

select to_char(trunc(sysdate,

'hh'),

'yyyy-mm-dd hh24.'

)"當前小時"

from dual;

select to_char(trunc(sysdate,

'hh24'),

'yyyy-mm-dd hh24.'

)"當前小時"

from dual;

分鐘相關

select to_char(trunc(sysdate,

'mi'),

'yyyy-mm-dd hh24.mi'

)"當前分鐘"

from dual;

總的來說trunc函式能用來處理日期,比如顯示年份的第一天,月份的第一天,然後使用add_months,last_day,next_day等函式和進行一些數值的相應轉換就能得到相關的日期了

Oracle日期顯示問題以及trunc方法的使用

我們先來假設這麼乙個場景,只要輸入乙個到月份的日期進入oracle,比如2012年8月。但是輸入進了oracle,會發現oracle自動補了個1號變成了2012 8 1,這並不是我們的本意。不要擔心,這只是oracle的顯示問題。當然我們需要在取出的時候進行處理。比如需要找到2012年8月份的資料,...

Oracle日期顯示問題以及trunc方法的使用

oracle日期顯示問題以及trunc方法的使用 我們先來假設這麼乙個場景,只要輸入乙個到月份的日期進入oracle,比如2012年8月。但是輸入進了oracle,會發現oracle自動補了個1號變成了2012 8 1,這並不是我們的本意。不要擔心,這只是oracle的顯示問題。當然我們需要在取出的...

oracle中 trunc 處理日期的用法

1select trunc sysdate from dual 結果是 截止到當日 不設定,預設是截止到 日 獲取到本年 第一天 獲取到 本月 第一天 獲取到本季度 第一天 預設獲取到日 當日的零點零分零秒 本周一 獲取離當前時間最近的周四,若當天為周四則返回當天,否則返回上周四 獲取到周 本週第一...