trunc是oracle数据库中一种格式化函数。

1.处理日期

  1.1.当年第一天:

SELECT TRUNC(SYSDATE,'YYYY') FROM DUAL;
SELECT TRUNC(SYSDATE,'YY') FROM DUAL;
SELECT TRUNC(SYSDATE,'YEAR') FROM DUAL;
--返回结果是2019/1/1

  1.2.当月第一天:

SELECT TRUNC(SYSDATE,'MM') FROM DUAL;
SELECT TRUNC(SYSDATE,'MONTH') FROM DUAL;
--返回结果:2019/1/1。很尴尬,我现在是一月份,所以看不出来区别,如果是2月份,应该是2019/2/1

  1.3.本周第一天:

SELECT TRUNC(SYSDATE,'D') FROM DUAL;
SELECT TRUNC(SYSDATE,'DAY') FROM DUAL;
--返回结果是:2019/1/27(周日为第一天,当前时间是:2019-1-28,星期二)

  1.4.当前小时时间,精确到小时:

SELECT TRUNC(SYSDATE,'HH') FROM DUAL;
SELECT TRUNC(SYSDATE,'HH24') FROM DUAL;
--返回结果是:2019/1/28 16:00:00(当前时间是:2019-01-28 16:50:35)

  1.5.当前分钟时间,精确到分钟。(没有精确到秒的用法) :

SELECT TRUNC(SYSDATE,'MI') FROM DUAL;
--返回结果:2019/1/28 16:52:00

  1.6.当前季度第一天:

SELECT TRUNC(SYSDATE,'Q') FROM DUAL;
--返回结果:2019/1/1(我当前时间是2019-01-28 16:55:20)

  1.7.昨天、明天:

SELECT TRUNC(SYSDATE+1) FROM DUAL;--明天,返回结果:2019/1/29
SELECT TRUNC(SYSDATE-1) FROM DUAL;--昨天,返回结果:2019/1/27

  1.8.计算两个时间相差的天数:

SELECT TRUNC(SYSDATE-TO_DATE('2019-2-10 18:00:00','YYYY/MM/DD HH24:MI:SS')) FROM DUAL; --结果:-13
SELECT TRUNC(SYSDATE-TO_DATE('2019-2-10 12:00:00','YYYY/MM/DD HH24:MI:SS')) FROM DUAL; --结果:-12
SELECT TRUNC(SYSDATE-TO_DATE('2019-1-10 12:00:00','YYYY/MM/DD HH24:MI:SS')) FROM DUAL; --结果:18
SELECT TRUNC(SYSDATE-TO_DATE('2019-1-10 18:00:00','YYYY/MM/DD HH24:MI:SS')) FROM DUAL; --结果:17
--注意:我当前时间是2019-01-28 17:02:16。我比较的时间分别是2019-2-10 18:00:00,2019-2-10 12:00:00,2019-1-10 12:00:00,2019-1-10 18:00:00与当前时间比较

  1.9.需要注意:

SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS') AS 系统日期,TO_CHAR(TRUNC(SYSDATE),'YYYY-MM-DD HH24:MI:SS') AS trunc日期 FROM DUAL;
--返回结果如下:
系统日期 TRUNC日期
------------------- -------------------
2019-01-28 17:10:19 2019-01-28 00:00:00
--注意这两种查询的区别,

2.处理数字:

用法:TRUNC(NUMBER,length),length表示会保留小数点后面几位数字,如果没有则只保留整数部分,注意:这个不会对数字进行四舍五入

SELECT TRUNC(1234.123456789) FROM DUAL;--
SELECT TRUNC(1234.123456789,0) FROM DUAL;--
SELECT TRUNC(1234.123456789,3) FROM DUAL;1234.123
SELECT TRUNC(1234.123456789,5) FROM DUAL;--1234.12345

Oracle——trunc()函数的使用的更多相关文章

  1. Oracle trunc()函数的用法

    Oracle trunc()函数的用法 /**************日期********************/1.select trunc(sysdate) from dual --2013-0 ...

  2. Oracle trunc函数

    --Oracle trunc()函数的用法/**************日期********************/1.select trunc(sysdate) from dual  --2011 ...

  3. oracle获取本月第一天和最后一天及Oracle trunc()函数的用法

    select to_char(trunc(add_months(last_day(sysdate), -1) + 1), 'yyyy-mm-dd') "本月第一天", to_cha ...

  4. Oracle trunc()函数

    Oracle trunc()函数的用法   --Oracle trunc()函数的用法/**************日期********************/1.select trunc(sysd ...

  5. Oracle trunc()函数的用法--来着心静禅定ing

    1.TRUNC(for dates) TRUNC函数为指定元素而截去的日期值. 其具体的语法格式如下: TRUNC(date[,fmt]) 其中: date 一个日期值 fmt 日期格式,该日期将由指 ...

  6. Oracle trunc() 函数处理数字、日期的整理

    --Oracle trunc()函数的用法/**************日期********************/1.select trunc(sysdate) from dual --2013- ...

  7. Oracle trunc()函数的用法及四舍五入 round函数

    --Oracle trunc()函数的用法/**************日期********************/1.select trunc(sysdate) from dual  --2011 ...

  8. [转]Oracle trunc()函数的用法

    原文地址:http://www.cnblogs.com/gengaixue/archive/2012/11/21/2781037.html 1.TRUNC(for dates) TRUNC函数为指定元 ...

  9. Oracle trunc()函数,decode()函数,substr函数,GREATEST函数,java中substring函数的用法

    --Oracle trunc()函数的用法/**************日期********************/1.select trunc(sysdate) from dual --2013- ...

  10. Oracle - Trunc() 函数截取日期&截取数值

    Oracle TRUNC函数可以截取数字和日期类型:截取日期:select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual; --显示当前时间 s ...

随机推荐

  1. Openfire 单人聊天和多人聊天(发送消息、接收消息)

    Openfire 单人聊天和多人聊天(发送消息.接收消息) 一.单人聊天 1)发送消息: 首先要获取一个聊天窗口,getConnection()为获取连接connection的方法,调用getFrie ...

  2. test001

    #include <iostream> using namespace std; ][]; int main() { int num; ; ; i <= ; i++) dp[i][] ...

  3. mysql数据字段整理

    <?php header('content-type:text/html;charset=utf-8'); define('DB_HOST','127.0.01'); define('DB_US ...

  4. spring 测试类test测试方法

    实例掩码地址为:孔浩组织结构设计 web.xml配置文件: <!-- Spring 的监听器可以通过这个上下文参数来获取beans.xml的位置 --> <context-param ...

  5. SpringBoot Mybatis整合(注解版),SpringBoot集成Mybatis(注解版)

    SpringBoot Mybatis整合(注解版),SpringBoot集成Mybatis(注解版) ================================ ©Copyright 蕃薯耀 2 ...

  6. 谈一谈 MPU6050 姿态融合(转)

    姿态角(Euler角)pitch yaw roll飞行器的姿态角并不是指哪个角度,是三个角度的统称.它们是:俯仰.滚转.偏航.你可以想象是飞机围绕XYZ三个轴分别转动形成的夹角. 地面坐标系(eart ...

  7. shell for循环 多个变量

    需求:需要输出以下2开头的端口号和其对应的文件 like: port and port_k8s_xxx.conf 其脚本为: #! /bash/shell #以value_name=(value1 v ...

  8. 下载Crypto,CyCrypto,PyCryptodome 报错问题

    python下载Crypto,CyCrypto,PyCryptodome,如有site-packages中存在crypto.pycrypto,在pip之前,需要pip3 uninstall crypt ...

  9. 创建多线程Thread

    创建一个线程: # 方式一from threading import Thread import time def func(n): time.sleep(1) print(n) t = Thread ...

  10. poj3255 Roadblocks

    Roadblocks Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 13594   Accepted: 4783 Descr ...