当前位置:网站首页> Oracle中日期的使用方法实例
Oracle中日期的使用方法实例
2022-07-06 19:08:00 【1024问】
前言
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:022022-04-10 22:31:43-- 简单案例-- 1 时间比较 因传入时间小于当前时间 结果集为空select TO_DATE('2022-04-04 22:20:02', 'SYYYY-MM-DD HH24:MI:SS') , SYSDATE FROM dualwhere 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 dualwhere TO_DATE('2022-04-04 22:20:02', 'SYYYY-MM-DD HH24:MI:SS') < SYSDATE -- 2022-04-04 22:20:022022-04-10 22:37:502 日期差值计算需求: 计算两个时间的天数差
1 直接将两个时间来相减两个日期相减,得到的是精度为时分秒的数据,不符合要求
SELECT SYSDATE- to_date('2022-04-10 22:20:02','yyyy-mm-dd hh24:mi:ss')FROM dual-- 结果 0.01813657407407407407407407407407407407412 时间和日期的两层转换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点.
SELECTSYSDATE,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 参数可忽略,指定截取的位数,缺省时表示截掉小数点后边的值
SELECT3.0,2.22, trunc(3.0) - trunc(2.22,1)FROM dual;-- 结果 3 2.22 0.8总结到此这篇关于Oracle中日期使用的文章就介绍到这了,更多相关Oracle日期使用内容请搜索软件开发网以前的文章或继续浏览下面的相关文章希望大家以后多多支持软件开发网!
边栏推荐
- 阿里云易立:云原生如何破解企业降本提效难题?
- Linear list --- circular linked list
- Processus général de requête pour PostgreSQL
- 软件测试——Jmeter接口测试之常用断言
- C # / vb. Net supprime le filigrane d'un document word
- Niuke programming problem -- double pointer of 101 must be brushed
- Safety delivery engineer
- MATLB|具有储能的经济调度及机会约束和鲁棒优化
- Have fun | latest progress of "spacecraft program" activities
- 【森城市】GIS数据漫谈(二)
猜你喜欢
![[unity notes] screen coordinates to ugui coordinates](/img/e4/fc18dd9b4b0e36ec3e278e5fb3fd23.jpg)
[unity notes] screen coordinates to ugui coordinates

导数、偏导数、方向导数

数论 --- 快速幂、快速幂求逆元

服装企业部署MES管理系统的五个原因

Niuke programming problem -- double pointer of 101 must be brushed

【森城市】GIS数据漫谈(二)

Five reasons for clothing enterprises to deploy MES management system

Lombok同时使⽤@Data和@Builder 的坑

AWS learning notes (I)

阿里云易立:云原生如何破解企业降本提效难题?
随机推荐
Gee upgrade can realize one piece of run tasks
postgresql之整體查詢大致過程
CSDN summer camp course project analysis
Lombok同时使⽤@Data和@Builder 的坑
[paper reading | deep reading] dngr:deep neural networks for learning graph representations
postgresql 之 数据目录内部结构 简介
C#/VB.NET 删除Word文檔中的水印
Use of pgpool II and pgpooladmin
[unity notes] screen coordinates to ugui coordinates
wzoi 1~200
Apifox,你的API接口文档卷成这样了吗?
C # / vb. Net supprime le filigrane d'un document word
Common fitting models and application methods of PCL
3 -- Xintang nuc980 kernel supports JFFS2, JFFS2 file system production, kernel mount JFFS2, uboot network port settings, and uboot supports TFTP
4 -- Xintang nuc980 mount initramfs NFS file system
argo workflows源码解析
unity中跟随鼠标浮动的面板,并可以自适应文字内容的大小
Code line breaking problem of untiy text box
Work of safety inspection
【Node学习笔记】chokidar模块实现文件监听