`
azrael6619
  • 浏览: 581002 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

oracle 获取周末 及trunc的用法

阅读更多

一、trunc的用法

1.trunc(for dates)
        trunc函数为指定元素而截去的日期值。
        其具体的语法格式如下:
        trunc(date[,fmt])
        其中:
        date        一个日期值
        fmt                日期格式,该日期将由指定的元素格式所截去。忽略他则由最近的日期截去
例如:

select   trunc(sysdate, 'mm')   from   dual;    --截取到“月”,如果传入的是:'2010-11-01',则需先转化为date

 

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

 

二、oracle获取周末

 

1、获取当天是礼拜几:select to_char(sysdate,'d') from dual;  --礼拜天为1,礼拜一为2,类推

2、获取 两个时间段间的 工作日:

select (trunc(&end_dt - &start_dt) -
         ((case
         WHEN (8 - to_number(to_char(&start_dt,'D'))) > trunc(&end_dt - &start_dt) + 1 THEN 0
         ELSE
          trunc((trunc(&end_dt - &start_dt) -
                (8 - to_number(to_char(&start_dt,'D'))))/7) + 1 END) +
         (case
         WHEN mod(8 - to_char(&start_dt, 'D'), 7) > trunc(&end_dt - &start_dt) - 1 THEN 0
         ELSE
          trunc((trunc(&end_dt - &start_dt) - (mod(8 - to_char(&start_dt,'D'),7) + 1))/7) + 1  END)))
         as workingdays
  from dual

下面的sql可以直接运行:

select (trunc(to_date('2010-11-11','yyyy-mm-dd') - to_date('2010-11-07','yyyy-mm-dd')) -
         ((case
         WHEN (8 - to_number(to_char(to_date('2010-11-07','yyyy-mm-dd'),'D'))) > trunc(to_date('2010-11-11','yyyy-mm-dd') - to_date('2010-11-07','yyyy-mm-dd')) + 1 THEN 0
         ELSE
          trunc((trunc(to_date('2010-11-11','yyyy-mm-dd') - to_date('2010-11-07','yyyy-mm-dd')) -
                (8 - to_number(to_char(to_date('2010-11-07','yyyy-mm-dd'),'D'))))/7) + 1 END) +
         (case
         WHEN mod(8 - to_char(to_date('2010-11-07','yyyy-mm-dd'), 'D'), 7) > trunc(to_date('2010-11-11','yyyy-mm-dd') - to_date('2010-11-07','yyyy-mm-dd')) - 1 THEN 0
         ELSE
          trunc((trunc(to_date('2010-11-11','yyyy-mm-dd') - to_date('2010-11-07','yyyy-mm-dd')) - (mod(8 - to_char(to_date('2010-11-07','yyyy-mm-dd'),'D'),7) + 1))/7) + 1  END)))
         as workingdays
  from dual
 

 

分享到:
评论

相关推荐

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

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

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

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

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

    Oracle数据库中的TRUNC函数是一个非常实用的工具,用于处理日期和数字类型的数据。它有两种主要的用法,分别针对日期和数字。 对于日期,TRUNC函数的主要作用是将日期值截断到特定的时间元素,例如年、月、日、小时...

    oracle trunc函数使用介绍

    ### Oracle TRUNC 函数详解 #### 一、概述 在Oracle数据库中,`TRUNC`函数主要用于对日期或数字进行截断操作。该函数对于日期数据类型,可以根据指定的格式来去除时间或日期中的特定部分;对于数值数据类型,则...

    ORACLE获取周月季年的第一天和最后一天

    以上都是基于Oracle SQL的常用方法,用于获取特定时间范围的边界日期。这些语句可以方便地应用于各种场景,如数据分析、报表生成或者业务逻辑处理。理解并掌握这些日期和时间操作对于日常的Oracle数据库操作至关重要...

    oracle的trunc函数使用实例

    详细介绍了 oracle 内置 trunc 函数的使用场景及实例,对日期格式和数字格式的数据进行操作

    oracle trunc()函数的使用方法

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

    Oracle 获取上周一到周末日期的查询sql语句

    3. `trunc(sysdate,'iw') - 7` 和 `trunc(sysdate,'iw') - 1`:使用`TRUNC`函数和减法操作获取上周一和上周日。 4. `to_char(trunc(sysdate,'iw') - 7,'yyyymmdd')` 和 `to_char(trunc(sysdate,'iw') - 1,'yyyymmdd'...

    TRUNC()函数用法

    TRUNC()函数是数据库系统和编程语言中广泛使用的数学和日期处理函数,主要用来进行数值和日期的截断操作。这个函数在处理数据时非常有用,因为它允许你精确地控制要保留的数据部分。 1. TRUNC()函数用于日期 TRUNC...

    oracle中函数 trunc(),round(),ceil(),floor的使用详解

    1.round函数(四舍五入) 描述 : 传回一个数值,该数值是按照指定的小数位元数进行四舍五入运算的结果 参数: number : 欲处理之数值 decimal_places : 四舍五入 , 小数取几位 ( 预设为 0 ) select round(123.456, ...

    Oracle 获得某日期属于一年中的第几个自然周

    在Oracle中,我们可以使用以下方法来获取符合ISO标准的自然周: 1. 首先,将日期转换为ISO周的年份,使用`EXTRACT(YEAR FROM date - TRUNC(date, 'IW'))`。 2. 然后,提取该日期在该年的周数,使用`EXTRACT(WEEK ...

    oracle函数得到下一个法定工作日期

    首先,Oracle提供了一些内置的日期函数,如`SYSDATE`获取当前日期,`ADD_MONTHS`增加月份,`TRUNC`截断日期到指定的日期部分。然而,这些函数并不直接支持判断是否为工作日或法定假日。因此,我们通常需要结合其他...

    Oracle里取随机数的几种具体的方法

    除了使用 DBMS_RANDOM 包外,还有其他方法可以生成随机数,例如使用 Oracle 的内置函数、使用 PL/SQL 语言等。这些方法可以根据实际情况选择。 Oracle 提供了多种方法来生成随机数,每种方法都有其优缺点,选择合适...

    oracle-trunc函数使用介绍.doc

    oracle-trunc函数使用介绍.doc

    取周一和周末

    ### Oracle数据库中获取指定周的周一和周末日期的方法 在Oracle数据库中,有时我们需要查询某个特定周的开始和结束日期,即周一和周末的日期。这在进行时间范围查询、数据统计等方面非常有用。本文将详细解析如何...

    Oracle里抽取随机数的多种方法

    Oracle 中抽取随机数的多种方法 在 Oracle 中抽取随机数是许多应用场景中常见的问题,例如在某个活动中需要随机取出一些符合条件的用户,以颁发获奖通知或其它消息。本文将通过实例讲解如何抽取随机数的多种方法。 ...

    Oracle常用函数和使用方法

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

Global site tag (gtag.js) - Google Analytics