亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術(shù)文章
文章詳情頁

Oracle中日期的使用方法實(shí)例

瀏覽:100日期:2023-03-12 15:25:26
目錄
  • 前言
  • 1 日期等于\大于\小于
  • 2 日期差值計(jì)算
    • 1 直接將兩個(gè)時(shí)間來相減
    • 2 時(shí)間和日期的兩層轉(zhuǎn)換
    • 3 使用trunc函數(shù)
  • 總結(jié)

    前言

    在使用sql函數(shù)時(shí),因項(xiàng)目數(shù)據(jù)庫(kù)不同,導(dǎo)致sql中日期的使用方法大不相同, 一些常見的日期計(jì)算,都有不同的應(yīng)用,故整理記錄一下Oracle的日期用法。
    以u(píng)ser表為例

    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"
    
    
    
    -- 添加基礎(chǔ)數(shù)據(jù)
    INSERT INTO "SCOTT"."user"("id", "name", "age", "email", "crt_time") VALUES ("1", "Jone", "18", """test1@baomidou.com", 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", """test2@baomidou.com", 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", """test3@baomidou.com", 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", """test4@baomidou.com", 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", """test5@baomidou.com", 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", """test6@baomidou.com", TO_DATE("2022-04-06 22:20:02", "SYYYY-MM-DD HH24:MI:SS"));
    

    1 日期等于\大于\小于

    Oracle中日期的大小比較,通常是轉(zhuǎn)換成字符串來進(jìn)行比較.

    說明:

    • dual是oracle中定義的一個(gè)內(nèi)部表,只有一行一列
    • SYSDATE函數(shù)表示當(dāng)前時(shí)間
    • to_char(date,‘format’)函數(shù), 參數(shù)date為日期類型,參數(shù)format表示轉(zhuǎn)換的格式,常用的是'yyyy-mm-dd hh24:mi:ss' (大小寫敏感)
    -- 查看兩個(gè)時(shí)間
    select TO_DATE("2022-04-04 22:20:02", "SYYYY-MM-DD HH24:MI:SS") , SYSDATE 
    FROM dual
    
    -- 結(jié)果
    -- 2022-04-04 22:20:02	2022-04-10 22:31:43
    
    -- 簡(jiǎn)單案例
    -- 1 時(shí)間比較 因傳入時(shí)間小于當(dāng)前時(shí)間  結(jié)果集為空
    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 時(shí)間比較 因傳入時(shí)間小于當(dāng)前時(shí)間  結(jié)果集有值
    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 日期差值計(jì)算

    需求: 計(jì)算兩個(gè)時(shí)間的天數(shù)差

    1 直接將兩個(gè)時(shí)間來相減

    兩個(gè)日期相減,得到的是精度為時(shí)分秒的數(shù)據(jù),不符合要求

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

    2 時(shí)間和日期的兩層轉(zhuǎn)換

    to_date(string,‘format’)函數(shù),是將字符串轉(zhuǎn)換為date時(shí)間.

    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;
    -- 結(jié)果: 0
    

    此種方法比較繁瑣,且經(jīng)過多次轉(zhuǎn)換,效率較低.

    3 使用trunc函數(shù)

    trunc()函數(shù).

    作用: 用于截取時(shí)間或者數(shù)值,返回指定的值.

    日期處理:

    TRUNC(date,[format])

    • date 為必要參數(shù),是輸入的一個(gè)date日期值.
    • format參數(shù)可忽略,指定日期格式,缺省時(shí)表示指定日期的0點(diǎn).
    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;
    

    此外,該函數(shù)還可以用于數(shù)值處理.

    TRUNC(number,[decimals])

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

    總結(jié)

    到此這篇關(guān)于Oracle中日期使用的文章就介紹到這了,更多相關(guān)Oracle日期使用內(nèi)容請(qǐng)搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持!

    標(biāo)簽: Oracle
    相關(guān)文章:
    主站蜘蛛池模板: 老司机成人福利视频在线观看免费 | 日本黄色绿像 | 久久久久久久国产免费看 | 精品一区二区三区在线播放 | 九九综合视频 | 久久综合色区 | 久爱www免费人成福利播放 | 国产精品国产主播在线观看 | 日韩视频一区二区在线观看 | 免费一区二区三区视频狠狠 | 国产免费福利网站 | 91轻吻| 妖精www视频在线观看高清 | 亚洲免费黄色片 | 一级一片免费播放 | 久久超级碰 | 欧美草比视频 | 日韩国产精品欧美一区二区 | 国产成人综合91精品 | 亚洲女视频 | 国产高清一级毛片在线人 | 永久免费在线视频 | 国产1区2区三区不卡 | 亚洲人性生活视频 | 日本免费久久久久久久网站 | 欧美久草在线 | 韩国十八禁毛片无遮挡 | 国产精品日韩欧美亚洲另类 | 在线观看国产精品日本不卡网 | 日韩精品免费一区二区三区 | 国产精品国产三级国产a | 国产婷婷一区二区三区 | 亚洲美女在线观看亚洲美女 | 国产成人综合手机在线播放 | 日韩欧美国产精品第一页不卡 | 亚洲 午夜在线一区 | www.黄色片| 欧美一级毛片激情 | 日韩亚洲成a人片在线观看 日韩亚洲欧美一区二区三区 | 全国男人的天堂网站 | 国产黑丝在线播放 |