专栏首页Kevin-ZhangCGOracle TRUNC函数使用

Oracle TRUNC函数使用

在订单信息查询时想获取当天产生的订单信息,查询了解到可以使用Oracle中的TRUNC函数,总结用法如下。

一、截取时间

语法格式:TRUNC(date[,fmt])

其中:date 一个日期值;fmt 日期格式。

该日期将按指定的日期格式截取;忽略它则由最近的日期截取。

根据当前系统时间获取,示例:

SELECT TRUNC(SYSDATE) FROM DUAL;--2021/2/13,返回当前时间
SELECT TRUNC(SYSDATE,'YY') FROM DUAL;--2021/1/1,返回当年第一天
SELECT TRUNC(SYSDATE,'MM') FROM DUAL;--2021/2/1,返回当月的第一天
SELECT TRUNC(SYSDATE,'D') FROM DUAL;--2021/2/12,返回当前星期的第一天,即星期天
SELECT TRUNC(SYSDATE,'DD') FROM DUAL;--2021/2/13,返回当前日期,今天是2021/2/13
SELECT TRUNC(SYSDATE ,'HH24') FROM DUAL;--2021/2/13 15:00:00,返回本小时的开始时间
SELECT TRUNC(SYSDATE ,'MI') FROM DUAL;--2021/2/13 15:13:00,返回本分钟的开始时间

执行结果如下:

根据输入时间获取,示例:

SELECT  TRUNC(TO_DATE('2021-06-21 18:00:00','YYYY-MM-DD HH24:MI:SS'),'YYYY') FROM DUAL ;--返回当年第一天
SELECT  TRUNC(TO_DATE('2021-06-21 18:00:00','YYYY-MM-DD HH24:MI:SS'),'MM') FROM DUAL ; --返回当月第一天
SELECT  TRUNC(TO_DATE('2021-06-21 18:00:00','YYYY-MM-DD HH24:MI:SS'),'DD') FROM DUAL ;--返回当前年月
SELECT  TRUNC(TO_DATE('2021-06-21 18:00:00','YYYY-MM-DD HH24:MI:SS'),'D') FROM DUAL ; --返回当前星期的第一天(星期日)
SELECT  TRUNC(TO_DATE('2021-06-21 18:12:12','YYYY-MM-DD HH24:MI:SS'),'HH') FROM DUAL ;--返回当前日期截取到小时,分秒补0
SELECT  TRUNC(TO_DATE('2021-06-21 18:12:12','YYYY-MM-DD HH24:MI:SS'),'MI') FROM DUAL ;--返回当前日期截取到分,秒补0

执行结果如下:

二、截取数值

语法格式:TRUNC(number[,decimals])

其中: number 待做截取处理的数值;decimals 指明需保留小数点后面的位数,可选项,忽略它则截去所有的小数部分。

注意:截取时并不对数据进行四舍五入。

示例:

SELECT  TRUNC(888.666) FROM  DUAL T; --默认取整
SELECT  TRUNC(888.666,2) FROM  DUAL T;
SELECT  TRUNC(888.666,-2) FROM  DUAL T;--负数表示从小数点左边开始截取2位

执行结果如下:

拓展

获取一个小时内生成的订单:

SELECT * FROM ORDER T WHERE SYSDATE-1/24 <= T.CREATE_DATE;

获取两个小时内生成的订单(其余以此类推):

SELECT * FROM ORDER T WHERE SYSDATE-1/12 <= T.CREATE_DATE;

获取二十四小时内生成的订单:

SELECT * FROM ORDER T WHERE SYSDATE-1 <= T.CREATE_DATE;

获取当天生成的订单(使用TRUNC函数):

SELECT * FROM ORDER T WHERE TRUNC(T.CREATE_DATE) = TRUNC(SYSDATE);

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • oracle 常用函数

    聚合函数(多行函数、分组函数、组函数):操作多行数据,并返回一个结果。比如 SUM

    Remember_Ray
  • 从 Oracle 到 PostgreSQL :从 Uptime 到数据库实例运行时间

    在接触操作系统时,我们常常习惯通过 uptime 来看看系统的启动运行时间,例如:

    数据和云
  • 从 Oracle 到 PostgreSQL :从 Uptime 到数据库实例运行时间

    原文:http://www.enmotech.com/web/detail/1/686/1.html  (复制链接,打开浏览器即可查看)

    数据和云01
  • Oracle日期处理

    TRUNC(date)函数返回date当天的时间部分被格式模型fmt截断到指定的单位

    WindCoder
  • 个人常用语句笔记-SQL

    WindCoder
  • Oracle诊断案例-Job任务停止执行

    Last Updated: Saturday, 2004-11-20 12:47 Eygle

    数据和云01
  • Oracle迁移MySQL 8特殊SQL处理 顶

    我们创建一个表,并生成两个表分区CUS_PART1,CUS_PART2.关于分区的分类可以参考https://www.cnblogs.com/wnlja/p/3...

    算法之名
  • Oracle诊断案例-Job任务停止执行[最终版]

    Last Updated: Friday, 2004-11-26 9:48 Eygle

    数据和云01
  • Oracle学习笔记_03_单行函数

    单行函数:        操作数据对象        接受参数返回一个结果 只对一行进行变换  每行返回一个结果        可以转换数据类型      ...

    shirayner
  • SQL 基础-->常用函数

    lpad | rpad(x,width [,pad_string]) 字符定长,(不够长度时,左|右填充)

    Leshami
  • Oracle 与 MySQL 的差异分析(7):日期和时间函数

    Oracle 中的日期类型是带有时分秒的,获取当前时间可以用sysdate,如果要获得更高的精度可以用 systimestamp。查出来的结果的格式受系...

    一头小山猪
  • Oracle常用函数

    Create Table Test6( id varchar2(30), name varchar2(30), age...

    郑小超.
  • 18C 也不能避免 SQL 解析的 Bug

    作者简介 ? 苏星开 云和恩墨南区交付技术顾问,曾服务过通信、能源生产、金融等行业客户,擅长 SQL 审核和优化,DataGuard 容灾等。 1 概述 在 O...

    数据和云
  • MySQL的前缀索引及Oracle的类似实现

    MySQL有一个很有意思的索引类型,叫做前缀索引,它可以给某个文本字段的前面部分单独做索引,从而降低索引的大小。 其实,Oracle也有类似的实现,对于文本,它...

    数据和云
  • 学习python第三天单行函数

    解答:会出现问题(报错了),出错原因,因为在执行代码的过程中对于employee_id,last_name这两列都有107条数据, 而department_i...

    hankleo
  • Java_Date_02_截断日期到日

    oracle 的 trunc 函数能很方便的将日期截断。现在有个需求,需要用java实现与 oracle 的 trunc 函数 相同的功能。

    shirayner
  • Oracle常用函数

    前一段时间学习Oracle 时做的学习笔记,整理了一下,下面是分享的Oracle常用函数的部分笔记,以后还会分享其他部分的笔记,请大家批评指正。 1.Oracl...

    lizelu
  • 【DB笔试面试666】在Oracle中,高并发高负载情况下,如何给表添加字段、设置DEFAULT值

    在Oracle中,在高并发、高负载的情况下,如何给表添加字段并设置DEFAULT值?

    小麦苗DBA宝典
  • DATE类型的“小陷阱”

    朋友提了个问题,虽然不是难题,但确实很细微,很可能就掉进了陷阱中,假设执行日期是2020-08-26,创建测试数据,

    bisal

扫码关注云+社区

领取腾讯云代金券