Oracle11g: datetime

来源:https://www.cnblogs.com/geovindu/archive/2018/11/27/10025488.html
-Advertisement-
Play Games

--上一月,上一年 select add_months(sysdate,-1) last_month,add_months(sysdate,-12) last_year from dual; --下一月,下一年 select add_months(sysdate,1) last_month,add_... ...


--上一月,上一年
select add_months(sysdate,-1) last_month,add_months(sysdate,-12) last_year from dual;

--下一月,下一年
select add_months(sysdate,1) last_month,add_months(sysdate,12) last_year from dual;

--當月最後一天

select LAST_DAY(sysdate) from dual;

--下周日期

select next_day(sysdate,'星期五') "下周五" from dual;
select next_day(sysdate, 'Friday') "Next Friday" from dual;
select next_day(sysdate, 4) from dual;

--固定日期一天
select * from account a where a.applytime>= to_date('2011-02-26','yyyy-mm-dd') and a.applytime< to_date('2011-02-27','yyyy-mm-dd');
--前天一天
select * from account a where a.applytime>= to_date(to_char(sysdate-2,'yyyy-mm-dd'),'yyyy-mm-dd') and a.applytime< to_date(to_char(sysdate-1,'yyyy-mm-dd'),'yyyy-mm-dd');
-- 昨天一天
select * from dxw_tmp a where a.applytime>= to_date(to_char(sysdate-1,'yyyy-mm-dd'),'yyyy-mm-dd') and a.applytime< to_date(to_char(sysdate,'yyyy-mm-dd'),'yyyy-mm-dd');
--今天一天
select * from account a where a.applytime>= to_date(to_char(sysdate,'yyyy-mm-dd'),'yyyy-mm-dd') and a.applytime< to_date(to_char(sysdate+1,'yyyy-mm-dd'),'yyyy-mm-dd');

-- 上月第一天
select to_date(to_char(add_months(sysdate,-2)+1,'yyyy-mm-dd'),'yyyy-mm-dd') from dual ;
-- 上月最後一天
select to_date(to_char(add_months(sysdate,-1),'yyyy-mm-dd'),'yyyy-mm-dd') from dual;

select * from account a where a.applytime>= to_date(to_char(add_months(sysdate,-2)+1,'yyyy-mm-dd'),'yyyy-mm-dd') and a.applytime<= to_date(to_char(add_months(sysdate,-1),'yyyy-mm-dd'),'yyyy-mm-dd');

select to_date(to_char(add_months(sysdate,-2),'yyyy-mm-dd'),'yyyy-mm-dd') from dual;
select to_date(to_char(add_months(sysdate,-3)+1,'yyyy-mm-dd'),'yyyy-mm-dd') from dual ;


 --trunc 截取日期

--當天零點

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

--當月一號

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

--本年一月一號

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

--當前毫秒級時間 6位

select to_char(current_timestamp,'yyyy-mm-dd hh24:mi:ss.ff6') from dual;


--字元串轉為 timestamp類型

select to_timestamp('2012-02-03 10:29:46.453234','yyyy-mm-dd hh24:mi:ss.ff6') from dual;

--timestamp轉為字元型

select to_char(systimestamp,'yyyy-mm-dd hh24:mi:ss.ff6') from dual;

select cast(sysdate as timestamp) from dual;

select to_char(sysdate,'YYYYMMDD W HH24:MI:SS') from dual; 
select to_char(sysdate,'YYYYMMDD WW HH24:MI:SS') from dual; 

select to_char(sysdate,'YYYYMMDD WW HH24:MI:SS') from dual; 

select to_char(systimestamp,'YYYYMMDD WW HH24:MI:SS.FF6') from dual;


-- 月第幾周
select to_char(sysdate,'yyyy-mm-dd w hh24:mi:ss') from dual; 
-- 年第幾周
select to_char(sysdate,'yyyy-mm-dd ww hh24:mi:ss') from dual; 

-- 第幾季度  FF6 date 沒有6位的秒位
select to_char(sysdate,'yyyy-mm-dd q ww hh24:mi:ss') from dual;

select to_char(systimestamp,'yyyy-mm-dd q ww hh24:mi:ss.ff6') from dual;

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


/*
O_DATE格式(以時間:2007-11-02   13:45:25為例)
   
        Year:      
        yy two digits 兩位年                顯示值:07
        yyy three digits 三位年                顯示值:007
        yyyy four digits 四位年                顯示值:2007
            
        Month:      
        mm    number     兩位月              顯示值:11
        mon    abbreviated 字元集表示          顯示值:11月,若是英文版,顯示nov     
        month spelled out 字元集表示          顯示值:11月,若是英文版,顯示november 
          
        Day:      
        dd    number         當月第幾天        顯示值:02
        ddd    number         當年第幾天        顯示值:02
        dy    abbreviated 當周第幾天簡寫    顯示值:星期五,若是英文版,顯示fri
        day    spelled out   當周第幾天全寫    顯示值:星期五,若是英文版,顯示friday        
        ddspth spelled out, ordinal twelfth 
             
              Hour:
              hh    two digits 12小時進位            顯示值:01
              hh24 two digits 24小時進位            顯示值:13
              
              Minute:
              mi    two digits 60進位                顯示值:45
              
              Second:
              ss    two digits 60進位                顯示值:25
              
              其它
              Q     digit         季度                  顯示值:4
              WW    digit         當年第幾周            顯示值:44
              W    digit          當月第幾周            顯示值:1
              
        24小時格式下時間範圍為: 0:00:00 - 23:59:59....      
        12小時格式下時間範圍為: 1:00:00 - 12:59:59 .... 
*/

 
select floor(to_number(sysdate-to_date('2007-11-02 15:55:03','yyyy-mm-dd hh24:mi:ss'))/365) as spanYears from dual        --時間差-年

select ceil(months_between(sysdate,to_date('2007-11-02 15:55:03','yyyy-mm-dd hh24:mi:ss'))) as spanMonths from dual        --時間差-月
select months_between('19-12月-1999','19-3月-1999') mon_between from dual; 
select months_between(to_date('2000.05.20','yyyy.mm.dd'),to_date('2005.05.20','yyyy.mm.dd')) mon_betw from dual;

select (EXTRACT(year FROM to_date('2009-05-01','yyyy-mm-dd')) - EXTRACT(year FROM to_date('2008-04-30','yyyy-mm-dd'))) * 12 + 
       EXTRACT(month FROM to_date('2008-05-01','yyyy-mm-dd')) - EXTRACT(month FROM to_date('2008-04-30','yyyy-mm-dd')) months 
from dual; 

select floor(to_number(sysdate-to_date('2007-11-02 15:55:03','yyyy-mm-dd hh24:mi:ss'))) as spanDays from dual             --時間差-天
select floor(to_number(sysdate-to_date('2007-11-02 15:55:03','yyyy-mm-dd hh24:mi:ss'))*24) as spanHours from dual         --時間差-時
select floor(to_number(sysdate-to_date('2007-11-02 15:55:03','yyyy-mm-dd hh24:mi:ss'))*24*60) as spanMinutes from dual    --時間差-分
select floor(to_number(sysdate-to_date('2007-11-02 15:55:03','yyyy-mm-dd hh24:mi:ss'))*24*60*60) as spanSeconds from dual --時間差-秒

select ceil((To_date('2008-05-02 00:00:00' , 'yyyy-mm-dd hh24-mi-ss') - To_date('2008-04-30 23:59:59' , 'yyyy-mm-dd hh24-mi-ss')) * 24 * 60 * 60 * 1000) 相差豪秒數 FROM DUAL; 
select ceil((To_date('2018-05-02 00:00:00' , 'yyyy-mm-dd hh24-mi-ss') - To_date('2018-04-30 23:59:59' , 'yyyy-mm-dd hh24-mi-ss')) * 24 * 60 * 60) 相差秒數 FROM DUAL; 

--加1年
select sysdate,add_months(sysdate,12) from dual; 
  
--加1月 
select sysdate,add_months(sysdate,1) from dual;   
--加1星期 
select sysdate,TO_CHAR(sysdate+7,'yyyy-mm-dd HH24:MI:SS') from dual; 
--加1天 
select sysdate,TO_CHAR(sysdate+1,'yyyy-mm-dd HH24:MI:SS') from dual; 
--加1小時   
select sysdate,TO_CHAR(sysdate+1/24,'yyyy-mm-dd HH24:MI:SS') from dual; 
 --加1分鐘  
select sysdate,TO_CHAR(sysdate+1/24/60,'yyyy-mm-dd HH24:MI:SS') from dual; 
--加1秒 
select sysdate,TO_CHAR(sysdate+1/24/60/60,'yyyy-mm-dd HH24:MI:SS') from dual;  
--加7天
select   sysdate+7   from   dual;    

-- https://docs.oracle.com/cd/E11882_01/server.112/e10729/ch4datetime.htm#NLSPG256

declare 
ddate timestamp;
sdate date;
begin
  ddate:= systimestamp;
  sdate:=sysdate;
DBMS_OUTPUT.PUT_LINE(ddate);
DBMS_OUTPUT.PUT_LINE(sdate);
end;

  


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1. 分類 常見的游標可分為顯示游標、隱式游標、靜態游標和動態游標四大類: 1.1 顯示游標 顯式是相對與隱式cursor而言的,就是有一個明確的聲明的cursor。顯式游標的聲明類似如下: delcare 游標關鍵字cursor 游標名 is 數據集; 游標從declare、open、fetch、 ...
  • 用戶鎖定表註意事項 通過指定鎖定方法、一個或多個索引、查詢處理操作(如表掃描或索引查找)或其他選項,表提示在數據操作語言 (DML) 語句執行期間覆蓋查詢優化器的預設行為。表提示在 DML 語句的 FROM 子句中指定,僅影響在該子句中引用的表或視圖。 如果查詢計劃不訪問表,則將忽略表提示。 這可能 ...
  • NoSQL(NoSQL = Not Only SQL ),意即“不僅僅是SQL”,泛指非關係型的資料庫。隨著互聯網web2.0網站的興起,傳統的關係資料庫在應付web2.0網站,特別是超大規模和高併發的SNS類型的web2.0純動態網站已經顯得力不從心,暴露了很多難以剋服的問題,而非關係型的資料庫則 ...
  • Redis-事務 Redis 事務可以一次執行多個命令, 並且帶有以下兩個重要的保證: 事務的上個步驟: 事務相關指令: 執行事務出現的四種情況: redis事務的三個特性: watch監控 watch監控表示對需要操作的key添加一個樂觀鎖,防止另一個用戶進行修改,導致結果錯誤。 悲觀鎖 顧名思義 ...
  • 解決方法: 修改D:\app\‘admin’\product\11.2.0\dbhome_1\NETWORK\ADMIN\路徑下的listener.ora和tnsnames.ora文件配置中的host為當前修改後的主機名 HOST = Gnar(當前主機名) ...
  • 可以使用--ignore-table=dbname.tablename 忽略一張表 ...
  • ```sql CREATE TABLE IF NOT EXISTS ( INT NOT NULL AUTO_INCREMENT, VARCHAR(45) NOT NULL, VARCHAR(2048) NULL, VARCHAR(45) NOT NULL, TIMESTAMP NOT NULL DE ...
  • MySQL資料庫語法 資料庫管理系統(DBMS)的概述 1. 什麼是DBMS:數據的倉庫 方便查詢 可存儲的數據量大 保證數據的完整、一致 安全可靠 2. DBMS的發展:今天主流資料庫為關係型資料庫管理系統(RDBMS 使用表格存儲數據) 3. 常見DBMS:Orcale、MySQL、SQL Se ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...