`

Oracle的trunc()函数用法

阅读更多

TRUNC()函数分两种


1.TRUNC(for dates) 
TRUNC函数为指定元素而截去的日期值。
其具体的语法格式如下:
TRUNC(date[,fmt])
其中:
date 一个日期值
fmt 日期格式,该日期将由指定的元素格式所截去。忽略它则由最近的日期截去
下面是该函数的使用情况:
select trunc(sysdate,'mm') from dual --2007-1-1 当月第一天
select trunc(sysdate,'yyyy') from dual --2007-1-1 当年第一天
select trunc(sysdate,'dd') from dual --2007-1-15 当天
select trunc(sysdate,'day') from dual --2007-1-14 本周第一天
select trunc(sysdate) from dual --2007-1-15 当天

 

 

###将下面的复制到plsql的SQL窗口,如下:

select trunc(sysdate),--2011-8-30 ,截取年-月-日,忽略时分秒
       trunc(sysdate, 'yyyy'), --2011-1-1 ,截取当年第一天 
       trunc(sysdate, 'mm'),  --2011-8-1 ,截取当月第一天
       trunc(sysdate, 'day'), --2011-8-28,截取本周第一天
       trunc(sysdate, 'dd'),--2011-8-30 ,截取当天 (等效于不加条件)
       trunc(sysdate, 'hh'), --2011-8-30 17:00:00 ,截取年-月-日 时(分、秒不取)
       trunc(sysdate, 'mi'), --2011-8-30 17:19:00 ,截取年-月-日 时:分 (秒不取)
       sysdate --2011-8-30 17:19:15 ,系统默认时间格式
from dual;

 

比较下面三个的不同:
select last_day(sysdate)+2 from dual; --2007-2-2 19:07:52
select (last_day(sysdate)+2)+10/24 from dual; --2007-2-3 5:07:18
select trunc(last_day(sysdate)+2)+10/24 from dual --2007-2-2 10:00:00


2.TRUNC(for number)

 

##trunc是取整函数,扩展可用做舍去函数

如:trunc(12.354),返回值12
trunc(12.354,1),返回值12.3
trunc(12.354,-1),返回值10
与rounddown()使用基本一致


TRUNC函数返回处理后的数值,其工作机制与ROUND函数极为类似,只是该函数不对指定小数前或后的部分做相应舍入选择处理,而统统截去。
其具体的语法格式如下
TRUNC(number[,decimals])
其中:
number 待做截取处理的数值
decimals 指明需保留小数点后面的位数。可选项,忽略它则截去所有的小数部分
下面是该函数的使用情况:
TRUNC(89.985,2)=89.98
TRUNC(89.985)=89
TRUNC(89.985,-1)=80
注意:第二个参数可以为负数,表示为小数点左边指定位数后面的部分截去,即均以0记。

 

 

============================================================================

 

【赛迪网-IT技术报道】

1:取得当前日期是本月的第几周


SQL> select to_char(sysdate,'YYYYMMDD W HH24:MI:SS') from dual;

 

TO_CHAR(SYSDATE,'YY

-------------------

20030327 4 18:16:09

 

SQL> select to_char(sysdate,'W') from dual;

 

T

-

4


2:取得当前日期是一个星期中的第几天,注意星期日是第一天


SQL> select sysdate,to_char(sysdate,'D') from dual;

 

SYSDATE T

--------- -

27-MAR-03 5

 

类似:


select to_char(sysdate,'yyyy') from dual; --年

select to_char(sysdate,'Q' from dual; --季

select to_char(sysdate,'mm') from dual; --月

select to_char(sysdate,'dd') from dual; --日

ddd 年中的第几天

WW 年中的第几个星期

W 该月中第几个星期

D 周中的星期几

hh 小时(12)

hh24 小时(24)

Mi 分

ss 秒

3:取当前日期是星期几中文显示:


SQL> select to_char(sysdate,'day') from dual;

 

TO_CHAR(SYSDATE,'DAY')

----------------------

星期四

 

4:如果一个表在一个date类型的字段上面建立了索引,如何使用


alter session set NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'

 

5: 得到当前的日期


select sysdate from dual;

 

6: 得到当天凌晨0点0分0秒的日期


select trunc(sysdate) from dual;

 

-- 得到这天的最后一秒

select trunc(sysdate) + 0.99999 from dual;

 

-- 得到小时的具体数值

select trunc(sysdate) + 1/24 from dual;

 

select trunc(sysdate) + 7/24 from dual;

 

7.得到明天凌晨0点0分0秒的日期


select trunc(sysdate+1) from dual;

 

select trunc(sysdate)+1 from dual;

 

 

8: 本月一日的日期


select trunc(sysdate,'mm') from dual;

 


9:得到下月一日的日期


select trunc(add_months(sysdate,1),'mm') from dual;

 

10:返回当前月的最后一天?


select last_day(sysdate) from dual;

select last_day(trunc(sysdate)) from dual;

select trunc(last_day(sysdate)) from dual;

select trunc(add_months(sysdate,1),'mm') - 1 from dual;

 


11: 得到一年的每一天


select trunc(sysdate,'yyyy')+ rn -1 date0

from

(select rownum rn from all_objects

where rownum<366);

 


12:今天是今年的第N天


SELECT TO_CHAR(SYSDATE,'DDD') FROM DUAL;

 

13:如何在给现有的日期加上2年


select add_months(sysdate,24) from dual;

 

14:判断某一日子所在年分是否为润年


select decode(to_char(last_day(trunc(sysdate,'y')+31),'dd'),'29','闰年','平年') from dual;

 

15:判断两年后是否为润年


select decode(to_char(last_day(trunc(add_months(sysdate,24),'y')+31),

'dd'),'29','闰年','平年') from dual;

 


16:得到日期的季度


select ceil(to_number(to_char(sysdate,'mm'))/3) from dual;

 

select to_char(sysdate, 'Q') from dual;

 

 

 

分享到:
评论

相关推荐

    Oracle中trunc()函数用法处理日期、数字类型数据

    Oracle 中的 TRUNC 函数用法处理日期、数字类型数据 TRUNC 函数是 Oracle 中的一个重要函数,它可以用来截断日期和数字类型的数据。下面我们将详细介绍 TRUNC 函数的用法和特点。 一、日期 TRUNC 函数 TRUNC 函数...

    oracle trunc函数使用介绍

    #### 二、TRUNC函数用于日期数据类型 ##### 1. 语法格式 ```sql TRUNC(date[, fmt]) ``` - **date**: 需要被截断的日期值。 - **fmt**: 可选参数,用于指定日期格式。如果不提供此参数,默认为去除日期的时间部分,...

    Oracle自我补充之trunc()函数的使用方法

    以下是数字类型的TRUNC函数用法: 1. TRUNC(number):不提供第二个参数时,TRUNC会去掉所有的小数部分,将数字转换为最接近的整数。 2. TRUNC(number, decimals):当你提供一个正数decimals时,TRUNC会保留小数点...

    Oracle常用函数Trunc及Trunc函数用法讲解

    Oracle数据库中的`TRUNC`函数是一个非常实用的函数,它在处理日期和数值时具有不同的功能。本篇文章将深入解析`TRUNC`函数在日期和数值处理中的具体用法。 ### 日期处理 在日期处理方面,`TRUNC`函数主要用于截取...

    oracle trunc()函数的使用方法

    oracle trunc()函数是最常用的函数之一,下面就为您介绍oracle trunc()函数的用法,供您参考,希望可以让您对oracle trunc()函数有更深的认识。 1.TRUNC(for dates) TRUNC函数为指定元素而截去的日期值。 其具体的...

    trunc函数应用实例

    `TRUNC`函数在Oracle数据库中是一个非常实用的日期处理函数,它被广泛应用于日期比较、事务调度和其他需要精确控制日期时间的操作中。在没有指定`fmt`参数时,`TRUNC`函数会将日期时间截断到最近的天。例如,`SELECT...

    oracle最常用的函数或方法总结

    Oracle数据库是全球广泛使用的大型关系型数据库管理系统之一,其丰富的函数和方法库为SQL查询提供了强大的支持。在日常的数据操作和分析中,掌握一些常用的Oracle函数和方法是至关重要的。以下是对"Oracle最常用的...

    oracle函数大全(CHM格式).rar

    在这个"Oracle函数大全"的CHM文件中,我们可以期待找到分类清晰、全面详尽的Oracle函数文档,包括函数的语法、参数、返回值、使用示例以及可能遇到的问题和解决方法。 Oracle数据库中的函数可以分为多种类型,包括...

    oracle内置函数学习

    Oracle内置函数是数据库管理系统Oracle中不可或缺的一部分,它们用于执行各种数据处理任务,包括数学运算、字符串操作、日期...因此,建议定期查阅官方文档,不断探索和尝试新的函数用法,以适应不断变化的业务需求。

    ORACLE函数及其用法

    ### ORACLE函数及其用法详解 #### 概述 Oracle是一种广泛使用的数据库管理系统,它提供了丰富的内置函数,这些函数能够帮助开发者和数据库管理员更高效地处理数据。本文将详细介绍Oracle中的一些常用函数及其应用...

    Oracle常用函数和使用方法

    本文将详细介绍Oracle中一些最常用的函数及其使用方法,这些函数包括`DECODE`、`ABS`、`CEIL`、`MOD`、`ROUND`、`TRUNC`、`CONCAT`、`LOWER`和`LPAD`。 #### 二、DECODE函数:条件判断与转换 **功能描述**:`...

    oracle 内置函数大全

    Oracle数据库系统是世界上最广泛使用的...在"oracle内置函数大全.sql"文件中,可能包含了所有这些函数的示例和用法,供用户参考和实践。通过深入研究这个文件,可以深入了解Oracle SQL的功能,并提升数据库管理技能。

    Oracle几个很有用的特殊函数使用方法,经验只谈

    以上只是Oracle特殊函数中的一部分,实际应用中还有许多其他函数,如 `DECODE`、`CASE` 语句等,可以根据具体需求灵活选择和组合使用。熟练掌握这些函数,能有效提高在Oracle SQL中的编程效率和数据处理能力。在实际...

    oracle函数用法

    ### Oracle函数用法详解 #### 数学函数 Oracle数据库提供了丰富的数学函数,这些函数可以帮助我们进行数据处理和分析。下面是一些常用的Oracle数学函数及其用法: - **ABS(x)**:返回数值`x`的绝对值。 - **ACOS...

    Oracle常用函数.pdf

    ### Oracle常用函数详解 ...掌握这些函数的使用方法,不仅能够提高 SQL 语句的编写效率,还能确保查询结果的准确性。在实际应用中,合理选择合适的函数,结合实际情况灵活运用,将极大提升数据处理的能力和效率。

    oracle时间函数

    本文将重点介绍三个实用的时间函数:`TO_NUMBER()`, `TO_CHAR()` 以及 `TRUNC()` 的用法,并通过具体的SQL示例来演示如何使用这些函数获取当前月份的天数、季度的天数以及年度的天数。 #### 一、获取当前月份的天数...

    SQLServer和Oracle常用函数对比

    在IT领域,数据库管理系统(DBMS)是至关重要的组成部分,用于存储、管理和检索数据。其中,Microsoft SQL Server和...此外,熟悉这些函数的使用方法也有助于优化查询性能,编写出更高效、更易维护的数据库应用程序。

    ORACLE分析函数.ppt

    在本文档中,我们将详细介绍 ORACLE 分析函数的使用和优化方法,并提供一些实用的示例代码和优化方案。同时,我们还将分析分析函数的优缺点,并讨论如何根据实际情况选择合适的分析函数。 1. 分析函数的优点 使用...

    SQLServer和Oracle的常用函数对比

    本文将基于给定文件信息,深入探讨和对比SQLServer与Oracle中的一些常用函数,这些函数涵盖了数学运算、数值处理、字符串操作等多个方面,对于数据库开发者和管理员而言,掌握这些函数的使用方法是提升工作效率的...

Global site tag (gtag.js) - Google Analytics