用於處理日期返回指定格式或者所需要指定的值
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 結果是 截止到當日 不設定,預設是截止到 日 獲取到本年 第一天 獲取到 本月 第一天 獲取到本季度 第一天 預設獲取到日 當日的零點零分零秒 本周一 獲取離當前時間最近的周四,若當天為周四則返回當天,否則返回上周四 獲取到周 本週第一...