人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動態(tài)

Oracle中日期的使用方法實例

發(fā)布日期:2022-07-15 19:02 | 文章來源:gibhub

在使用sql函數(shù)時,因項目數(shù)據(jù)庫不同,導(dǎo)致sql中日期的使用方法大不相同, 一些常見的日期計算,都有不同的應(yīng)用,故整理記錄一下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"

-- 添加基礎(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)換成字符串來進行比較.

說明:

  • dual是oracle中定義的一個內(nèi)部表,只有一行一列
  • SYSDATE函數(shù)表示當前時間
  • to_char(date,‘format’)函數(shù), 參數(shù)date為日期類型,參數(shù)format表示轉(zhuǎn)換的格式,常用的是'yyyy-mm-dd hh24:mi:ss' (大小寫敏感)
-- 查看兩個時間
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
-- 簡單案例
-- 1 時間比較 因傳入時間小于當前時間  結(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 時間比較 因傳入時間小于當前時間  結(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 日期差值計算

需求: 計算兩個時間的天數(shù)差

1 直接將兩個時間來相減

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

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

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

to_date(string,‘format’)函數(shù),是將字符串轉(zhuǎn)換為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;
-- 結(jié)果: 0        

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

3 使用trunc函數(shù)

trunc()函數(shù).

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

日期處理:

TRUNC(date,[format])

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

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

TRUNC(number,[decimals])

  • number 為必要參數(shù),是輸入的一個number數(shù)值.
  • decimals 參數(shù)可忽略,指定截取的位數(shù),缺省時表示截掉小數(shù)點后邊的值
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)容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!

美國服務(wù)器租用

版權(quán)聲明:本站文章來源標注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。

實時開通

自選配置、實時開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問服務(wù)

1對1客戶咨詢顧問

在線
客服

在線客服:7*24小時在線

客服
熱線

400-630-3752
7*24小時客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部