色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術文章
文章詳情頁

Oracle中日期的使用方法實例

瀏覽:117日期:2023-03-12 15:25:26
目錄
  • 前言
  • 1 日期等于\大于\小于
  • 2 日期差值計算
    • 1 直接將兩個時間來相減
    • 2 時間和日期的兩層轉換
    • 3 使用trunc函數
  • 總結

    前言

    在使用sql函數時,因項目數據庫不同,導致sql中日期的使用方法大不相同, 一些常見的日期計算,都有不同的應用,故整理記錄一下Oracle的日期用法。
    以user表為例

    CREATE TABLE "SCOTT"."user" 
       (	"id" NUMBER(20,0) NOT NULL ENABLE, 
    	"name" VARCHAR2(30), 
    	"age" NUMBER(11,0), 
    	"email" VARCHAR2(50), 
    	"crt_time" DATE, 
    	 PRIMARY KEY ("id")
      USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 NOCOMPRESS LOGGING
      TABLESPACE "USERS"  ENABLE
       ) SEGMENT CREATION DEFERRED 
      PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
      TABLESPACE "USERS"
    
    
    
    -- 添加基礎數據
    INSERT INTO "SCOTT"."user"("id", "name", "age", "email", "crt_time") VALUES ("1", "Jone", "18", """[email protected]", TO_DATE("2022-04-01 22:20:02", "SYYYY-MM-DD HH24:MI:SS"));
    INSERT INTO "SCOTT"."user"("id", "name", "age", "email", "crt_time") VALUES ("2", "Jone", "20", """[email protected]", TO_DATE("2022-04-02 22:20:02", "SYYYY-MM-DD HH24:MI:SS"));
    INSERT INTO "SCOTT"."user"("id", "name", "age", "email", "crt_time") VALUES ("3", "Jone", "28", """[email protected]", TO_DATE("2022-04-03 22:20:02", "SYYYY-MM-DD HH24:MI:SS"));
    INSERT INTO "SCOTT"."user"("id", "name", "age", "email", "crt_time") VALUES ("4", "Jone", "21", """[email protected]", TO_DATE("2022-04-04 22:20:02", "SYYYY-MM-DD HH24:MI:SS"));
    INSERT INTO "SCOTT"."user"("id", "name", "age", "email", "crt_time") VALUES ("5", "Jone", "24", """[email protected]", TO_DATE("2022-04-05 22:20:02", "SYYYY-MM-DD HH24:MI:SS"));
    INSERT INTO "SCOTT"."user"("id", "name", "age", "email", "crt_time") VALUES ("6", "Jone", "12", """[email protected]", TO_DATE("2022-04-06 22:20:02", "SYYYY-MM-DD HH24:MI:SS"));
    

    1 日期等于\大于\小于

    Oracle中日期的大小比較,通常是轉換成字符串來進行比較.

    說明:

    • dual是oracle中定義的一個內部表,只有一行一列
    • SYSDATE函數表示當前時間
    • to_char(date,‘format’)函數, 參數date為日期類型,參數format表示轉換的格式,常用的是'yyyy-mm-dd hh24:mi:ss' (大小寫敏感)
    -- 查看兩個時間
    select TO_DATE("2022-04-04 22:20:02", "SYYYY-MM-DD HH24:MI:SS") , SYSDATE 
    FROM dual
    
    -- 結果
    -- 2022-04-04 22:20:02	2022-04-10 22:31:43
    
    -- 簡單案例
    -- 1 時間比較 因傳入時間小于當前時間  結果集為空
    select TO_DATE("2022-04-04 22:20:02", "SYYYY-MM-DD HH24:MI:SS") , SYSDATE 
    FROM dual
    where 
    TO_DATE("2022-04-04 22:20:02", "SYYYY-MM-DD HH24:MI:SS") > SYSDATE 
    -- 	空串  空串
    
    -- 2 時間比較 因傳入時間小于當前時間  結果集有值
    select TO_DATE("2022-04-04 22:20:02", "SYYYY-MM-DD HH24:MI:SS") , SYSDATE 
    FROM dual
    where 
    TO_DATE("2022-04-04 22:20:02", "SYYYY-MM-DD HH24:MI:SS") < SYSDATE 
    
    -- 2022-04-04 22:20:02	2022-04-10 22:37:50
    

    2 日期差值計算

    需求: 計算兩個時間的天數差

    1 直接將兩個時間來相減

    兩個日期相減,得到的是精度為時分秒的數據,不符合要求

    SELECT 
    	SYSDATE- to_date("2022-04-10 22:20:02","yyyy-mm-dd hh24:mi:ss")
    FROM 
    	dual
    -- 結果 0.0181365740740740740740740740740740740741
    

    2 時間和日期的兩層轉換

    to_date(string,‘format’)函數,是將字符串轉換為date時間.

    SELECT
       to_date(to_char(SYSDATE,"yyyy-mm-dd"),"YYYY-MM-DD HH24:MI:SS") - to_date(to_char(to_date( "2022-04-10 22:20:02", "YYYY-MM-DD HH24:MI:SS" ) ,"yyyy-mm-dd"),"YYYY-MM-DD HH24:MI:SS")
    FROM
       dual;
    -- 結果: 0
    

    此種方法比較繁瑣,且經過多次轉換,效率較低.

    3 使用trunc函數

    trunc()函數.

    作用: 用于截取時間或者數值,返回指定的值.

    日期處理:

    TRUNC(date,[format])

    • date 為必要參數,是輸入的一個date日期值.
    • format參數可忽略,指定日期格式,缺省時表示指定日期的0點.
    SELECT
    	SYSDATE,
    	to_date( "2022-04-10 22:20:02", "YYYY-MM-DD HH24:MI:SS" ),
        trunc(SYSDATE) - trunc(to_date( "2022-04-10 22:20:02", "YYYY-MM-DD HH24:MI:SS" ))
    FROM
       dual;
    

    此外,該函數還可以用于數值處理.

    TRUNC(number,[decimals])

    • number 為必要參數,是輸入的一個number數值.
    • decimals 參數可忽略,指定截取的位數,缺省時表示截掉小數點后邊的值
    SELECT
    3.0,
    2.22,
        trunc(3.0) - trunc(2.22,1)
    FROM
        dual;
    -- 結果 3    2.22    0.8
    

    總結

    到此這篇關于Oracle中日期使用的文章就介紹到這了,更多相關Oracle日期使用內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!

    標簽: Oracle
    相關文章:
    主站蜘蛛池模板: 久久伊人精品热在75 | 在线亚洲精品视频 | 玖玖精品视频在线 | 色天天躁夜夜躁天干天干 | 国产精品麻豆一区二区三区v视界 | 中文字幕色站 | 久久亚洲国产中v天仙www | 久久国产精品免费 | 成人精品视频 | 久久久影院 | 玖玖精品在线 | 女人把腿劈开让男人桶的网站 | 高清精品一区二区三区一区 | 亚洲国产综合人成综合网站00 | 在线满18网站观看视频 | 欧美不卡一区二区三区 | 成人毛片免费观看视频 | 中文字幕在线免费观看视频 | 亚洲一区二区三区四区五区 | 免费欧洲毛片a级视频 | 全国最大色成免费网站 | 真人毛片免费全部播放完整 | 免费看真人a一级毛片 | 亚洲干综合 | 国产大陆亚洲精品国产 | 欧美一区二区三区高清视频 | 在线观看人成网站深夜免费 | 亚洲欧洲一级 | 9久9久热精品视频在线观看 | 香蕉久久综合精品首页 | 亚洲国产成人超福利久久精品 | 美女又爽又黄视频 | 欧美日韩一区二区综合在线视频 | 亚洲欧美精品一中文字幕 | 亚洲欧美一区在线 | 欧美久久久久欧美一区 | 特级aaa片毛片免费观看 | 久久99精品久久久久久野外 | 亚洲一级毛片免费在线观看 | 日韩一区二区在线视频 | 91手机看片国产福利精品 |