首页 热点资讯 义务教育 高等教育 出国留学 考研考公
您的当前位置:首页正文

Oracle trunc()函数的用法

2023-11-08 来源:华拓网

/**************日期  TRUNC()函数没有秒的精确 ********************/

select sysdate from dual --当时日期

select trunc(sysdate) from dual

select trunc(sysdate ,‘DD‘) from dual --今天日期

select trunc(sysdate,‘d‘)+7 from dual --本周星期日

select trunc(sysdate,‘dy‘)+7 from dual  --本周星期日

select trunc(sysdate,‘day‘)+7 from dual --本周星期日

select trunc(sysdate,‘q‘) from dual--本季开始日期

select trunc(sysdate,‘month‘) from dual --本月开始日期

select trunc(sysdate ,‘mm‘) from dual --本月开始日期

select trunc(sysdate,‘year‘) from dual  --本年开始日期

select trunc(sysdate ,‘yyyy‘) from dual --本年开始日期

select trunc(sysdate ,‘HH24‘) from dual --本小时开始时间

select trunc(sysdate ,‘MI‘) from dual --本分钟开始时间

select trunc(sysdate ,‘CC‘) from dual --本世纪开始时间

select trunc(LAST_DAY(sysdate),‘dd‘) from dual --本月最后一天

round(10.2356,2)函数可以对数字按指定保留小数位数四舍五入,这个函数还可以对日期四舍五入

select round(sysdate,‘yyyy‘) from dual 四舍五入到年

select round(sysdate,‘mm‘) from dual 四舍五入到月

select round(sysdate,‘dd‘) from dual 四舍五入到日

select round(sysdate,‘hh‘) from dual 四舍五入到小时

select round(sysdate,‘mi‘) from dual 四舍五入到分钟

 

/***************数字********************//*TRUNC(number,num_digits) Number 需要截尾取整的数字。 Num_digits 用于指定取整精度的数字。Num_digits 的默认值为 0。TRUNC()函数截取时不进行四舍五入*/select trunc(123.458) from dual --123select trunc(123.458,0) from dual --123select trunc(123.458,1) from dual --123.4select trunc(123.458,-1) from dual --120select trunc(123.458,-4) from dual --0select trunc(123.458,4) from dual  --123.458select trunc(123) from dual  --123select trunc(123,1) from dual --123select trunc(123,-1) from dual --120

Oracle trunc()函数的用法

标签:oracle   trunc   函数   

小编还为您整理了以下内容,可能对您也有帮助:

oracle trunc函数使用介绍

1.TRUNC(for dates)

TRUNC函数为指定元素而截去的日期值。

其具体的语法格式如下:

TRUNC(date[,fmt])

其中:

date 一个日期值

fmt 日期格式,该日期将由指定的元素格式所截去。忽略它则由最近的日期截去

下面是该函数的使用情况:

TRUNC(TO_DATE('24-Nov-1999 08:00 pm'),'dd-mon-yyyy hh:mi am')

='24-Nov-1999 12:00:00 am'

TRUNC(TO_DATE('24-Nov-1999 08:37 pm','dd-mon-yyyy hh:mi am'),'hh') ='24-Nov-1999 08:00:00 am'

trunc(sysdate,'yyyy') --返回当年第一天。

trunc(sysdate,'mm') --返回当月第一天。

trunc(sysdate,'d') --返回当前星期的第一天。

trunc(sysdate,'dd')--返回当前年月日

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记。与取整类似,比如参数为1即取整到十分位,如果是-1,则是取整到十位,以此类推。

oracle中trunc的用法简介

--Oracle中的trunc()函数是对时间类型或者数字进行截取操作的。

--trunc(Date)的用法一般有以下几种:

select sysdate from al

select to_char(sysdate,'yyyy-mm-dd hh:mi:ss') from al

select trunc(sysdate,'yyyy') from al --当年的第一天

select trunc(sysdate,'mm') from al --当月的第一天

select trunc(sysdate,'dd') from al --当前时间(精确到天)

select trunc(sysdate,'d') from al --当前星期的第一天

select trunc(sysdate,'hh') from al --当前时间(精确到小时)

select trunc(sysdate,'mi') from al --当前时间(精确到分钟,没有精确到秒的)

--trunc(number)的用法一般有以下几种:

select trunc(55.5,-1) from al ;  ---1(负数)表示从小数点左边第一位截取后面全置为零;

select trunc(55.55,1) from al ;  --1(正数)表示小数点后面保留一位;

select trunc(55.55) from al ;  --截取整数部分;

oracle中trunc的用法简介

--Oracle中的trunc()函数是对时间类型或者数字进行截取操作的。

--trunc(Date)的用法一般有以下几种:

select sysdate from al

select to_char(sysdate,'yyyy-mm-dd hh:mi:ss') from al

select trunc(sysdate,'yyyy') from al --当年的第一天

select trunc(sysdate,'mm') from al --当月的第一天

select trunc(sysdate,'dd') from al --当前时间(精确到天)

select trunc(sysdate,'d') from al --当前星期的第一天

select trunc(sysdate,'hh') from al --当前时间(精确到小时)

select trunc(sysdate,'mi') from al --当前时间(精确到分钟,没有精确到秒的)

--trunc(number)的用法一般有以下几种:

select trunc(55.5,-1) from al ;  ---1(负数)表示从小数点左边第一位截取后面全置为零;

select trunc(55.55,1) from al ;  --1(正数)表示小数点后面保留一位;

select trunc(55.55) from al ;  --截取整数部分;

Oracle trunc( )函数的用法是什么?

关于TRUNC函数的format,format为day时,只精确到天,而不管几年几月只要是符合的day就可以了,要想确定一年中的某月的某一天就要用t

bitand()函数

返回两个数值型数值在按位进行 AND 运算后的结果。
语法
BITAND(nExpression1,nExpression2)
参数
nExpression1,nExpression2

指定按位进行AND 运算的两个数值。如果 nExpression1 和 nExpression2 为非整数型,那么它们在按位进行AND运算之前转换为整数。

返回值类型

数值型

说明
BITAND()将nExpression1的每一位同nExpression2的相应位进行比较。如果 nExpression1和nExpression2的位都是1,相应的结果位就是1;否则相应的结果位是 0。

下表列出对nExpression1和nExpression2按位进行AND运算的结果:

nExpression1位 nExpression2位 结果位
0 0 0
0 1 0

1 1 1
1 0 0


bitand() 函数示例
x = 5 && 二进制为 0101
y = 6 && 二进制为 0110
? bitand(x,y) && 返回值 4,二进制为 0100

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

Oracle中的BITOR和BITXOR

ORACLE中只有BITAND而没有BITOR, BITXOR

原因是,有了BITAND, 很容易实现BITOR和BITXOR

BITOR(x,y) = (x + y) - BITAND(x, y);

BITXOR(x,y) = BITOR(x,y) - BITAND(x,y) = (x + y) - BITAND(x, y) * 2;

trunc()函数

关于TRUNC函数的format,format为day时,只精确到天,而不管几年几月只要是符合的day就可以了,要想确定一年中的某月的某一天就要用trunc(date,'dd').

通俗的说吧,format为年时,精确到-----年

为月时,精确到------年,月(不管哪年,只要是相同的月和哪天)
为日时,精确到------年,月,日(不管哪年的哪月,只关心是哪天)

1.TRUNC(for dates)
TRUNC函数为指定元素而截去的日期值。
其具体的语法格式如下:
TRUNC(date[,fmt])
其中:
date 一个日期值
fmt 日期格式,该日期将由指定的元素格式所截去。忽略它则由最近的日期截去
下面是该函数的使用情况:
TRUNC(TO_DATE(’24-Nov-1999 08:00 pm’,’dd-mon-yyyy hh:mi am’))
=’24-Nov-1999 12:00:00 am’
TRUNC(TO_DATE(’24-Nov-1999 08:37 pm’,’dd-mon-yyyy hh:mi am’,’hh’)) =’24-Nov-1999 08:00:00 am’

round (date,'format')未指定format时,如果日期中的时间在中午之前,则将日期中的时间截断为12 A.M.(午夜,一天的开始),否则进到第二天。

TRUNC(date,'format')未指定format时,将日期截为12 A.M.,不考虑是否在中午之前的条件。

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记。

linux

Oracle trunc( )函数的用法是什么?

关于TRUNC函数的format,format为day时,只精确到天,而不管几年几月只要是符合的day就可以了,要想确定一年中的某月的某一天就要用t

bitand()函数

返回两个数值型数值在按位进行 AND 运算后的结果。
语法
BITAND(nExpression1,nExpression2)
参数
nExpression1,nExpression2

指定按位进行AND 运算的两个数值。如果 nExpression1 和 nExpression2 为非整数型,那么它们在按位进行AND运算之前转换为整数。

返回值类型

数值型

说明
BITAND()将nExpression1的每一位同nExpression2的相应位进行比较。如果 nExpression1和nExpression2的位都是1,相应的结果位就是1;否则相应的结果位是 0。

下表列出对nExpression1和nExpression2按位进行AND运算的结果:

nExpression1位 nExpression2位 结果位
0 0 0
0 1 0

1 1 1
1 0 0


bitand() 函数示例
x = 5 && 二进制为 0101
y = 6 && 二进制为 0110
? bitand(x,y) && 返回值 4,二进制为 0100

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

Oracle中的BITOR和BITXOR

ORACLE中只有BITAND而没有BITOR, BITXOR

原因是,有了BITAND, 很容易实现BITOR和BITXOR

BITOR(x,y) = (x + y) - BITAND(x, y);

BITXOR(x,y) = BITOR(x,y) - BITAND(x,y) = (x + y) - BITAND(x, y) * 2;

trunc()函数

关于TRUNC函数的format,format为day时,只精确到天,而不管几年几月只要是符合的day就可以了,要想确定一年中的某月的某一天就要用trunc(date,'dd').

通俗的说吧,format为年时,精确到-----年

为月时,精确到------年,月(不管哪年,只要是相同的月和哪天)
为日时,精确到------年,月,日(不管哪年的哪月,只关心是哪天)

1.TRUNC(for dates)
TRUNC函数为指定元素而截去的日期值。
其具体的语法格式如下:
TRUNC(date[,fmt])
其中:
date 一个日期值
fmt 日期格式,该日期将由指定的元素格式所截去。忽略它则由最近的日期截去
下面是该函数的使用情况:
TRUNC(TO_DATE(’24-Nov-1999 08:00 pm’,’dd-mon-yyyy hh:mi am’))
=’24-Nov-1999 12:00:00 am’
TRUNC(TO_DATE(’24-Nov-1999 08:37 pm’,’dd-mon-yyyy hh:mi am’,’hh’)) =’24-Nov-1999 08:00:00 am’

round (date,'format')未指定format时,如果日期中的时间在中午之前,则将日期中的时间截断为12 A.M.(午夜,一天的开始),否则进到第二天。

TRUNC(date,'format')未指定format时,将日期截为12 A.M.,不考虑是否在中午之前的条件。

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记。

linux

oracle trunc()函数关于日期和时间,需要详细解答和举例?

【答案】:给你个例子吧:

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

Session altered.

SQL> SELECT 'Year' AS truncType , TRUNC( SYSDATE, 'YYYY' ) FROM DUAL

2 UNION ALL

3 SELECT 'Quarter' AS truncType, TRUNC( SYSDATE, 'Q' ) FROM DUAL

4 UNION ALL

5 SELECT 'Month' AS truncType, TRUNC( SYSDATE, 'MM' ) FROM DUAL

6 UNION ALL

7 SELECT 'Week' AS truncType, TRUNC( SYSDATE, 'W' ) FROM DUAL

8 UNION ALL

9 SELECT 'Day' AS truncType, TRUNC( SYSDATE, 'D' ) FROM DUAL

10 UNION ALL

11 SELECT 'Hour' AS truncType, TRUNC( SYSDATE, 'HH' ) FROM DUAL;

TRUNCTYPE TRUNC(SYSDATE,'YYYY

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

Year 2010-01-01 00:00:00

Quarter 2010-10-01 00:00:00

Month 2010-10-01 00:00:00

Week 2010-10-15 00:00:00

Day 2010-10-17 00:00:00

Hour 2010-10-17 22:00:00

6 rows selected.

ORACLE中to_char、to_date、trunc、to_number、cast函数

to_char函数的功能是将数值型或者日期型转化为特定格式的字符型

1、将日期转化为年月日格式

2、将日期转化为年月日,星期几格式

3、to_char10进制转化为16进制

将字符串转化为日期格式

trunc()函数是对时间类型或者数字进行截取操作的,返回的时间或者数字类型
1、时间

CAST()函数可以进行数据类型的转换。

主要是将字符串转换为数值型的格式,与TO_CHAR()函数的作用正好相反。

ORACLE中to_char、to_date、trunc、to_number、cast函数

to_char函数的功能是将数值型或者日期型转化为特定格式的字符型

1、将日期转化为年月日格式

2、将日期转化为年月日,星期几格式

3、to_char10进制转化为16进制

将字符串转化为日期格式

trunc()函数是对时间类型或者数字进行截取操作的,返回的时间或者数字类型
1、时间

CAST()函数可以进行数据类型的转换。

主要是将字符串转换为数值型的格式,与TO_CHAR()函数的作用正好相反。

Oracle函数的使用

接收字符返回字符或数值时可以使用al伪表

1、把小写字符转换成大写

select supper(“smi”) form al

2、把大写转换成小写

lower(“SMI”)

3、首字母大写

initcap(“smi”)

4、字符串的连接可以使用concat,也可以使用    建议使用

concat(“hello”“world”) 结果为helloworld

5、字符串的截取,使用substr,第一个参数为字符串,第二个参数是索引,第三个参数结束索引(开始索引使用0和1效果一样)

substr(hello,0,3) 结果为hel

6、获取字符串长度

length(“hello”)

7、字符串替换,第二个参数为被替换的字符串,第三个是替换的字符串

replace(“hello”,“l”,“x”) 结果为hexxo

1、四舍五入函数ROUND()

默认取整,可以指定保留位数

round(12.523)  结果为13

round(12.537,2) 结果为12.54

2、取整TRUNC

默认全部去掉小数,可以指定位数

trunc(12.789) 结果为12

3、取余数MOD

mod(10,3) 结果为1

oracle中提供了很多和日期相关的函数,包括日期的加减

日期 - 数字 =日期

日期 - 日期 = 数字(天)

1、如:查询员工进入公司的走数

  (sysdate - 入职日期)/7

注:当前日期查询select sysdate form al

2、查询所有员工进入公司的月数

获取两个时间段的月数使用months_between(sysdate,入职日期)

3、获取几个月后的日期:add_months()

如:获取员工三个月后的日期

add_months(sysdate,3)

4、如求出下星期一是什么时候

指定给出下次某日期数next_date()

next_date(sysdate,“星期一”)

5、求日期的最后一天last_day()

求出本月的最后一天

last_day(sysdate)

1、to_char字符串转换函数

如:将所有员工的入职日期的年、月分开

注:在划分时需要通配符

年:yyyy  月:mm  日:dd

时:HH 分:mi  秒:ss

定义时间格式

to_char(sysdate,“yyyy-mm-dd HH24:mi:ss”)

在10以下的月数前面会默认加上前导零,去除加上fm

to_char(sysdate,“fmyyyy-mm-dd HH24:mi:ss”)

to_char还可以给数字做格式化

如将员工的工资按三位“,”分隔

to_char(工资,“99,999”) 9代表数字

如果想在钱上加上国家符号

美元使用

中文使用l

to_char(工资,“99,999”)

to_char(工资,“l99,999”)

2、to_number数值转换函数,将字符串转换成数值

to_number(“10”) +to_number(“10”)

3、to_date日期转换函数,将字符串数据转换成日期类型

to_date(“1997-05-12”,“YYYY-mm-dd”)  1997/05/12

1、空值处理 nvl

如果在查询的时候存在空值的情况可以使用

nvl(comm,0) 当comm的列值为空时,用0代替

2、decode函数

该函数类似于if ...else if ...else

语法:decode(列名/值,search1,result1,search2,result2,default)

decode(中国,中国,我是中国,美国,我是美国,其他)

如果为中国返回我是中国,为美国返回我是美国,为其他字符则返回其他。

3、case when 与decode差不多

语法 case when city=中国 then 我是中国

              when city=美国 then 我是美国

                else 其他

trunc函数的用法

说明

在Microsoft Excel 2010中该函数是将数字的小数部分截去,返回整数。

语法

TRUNC(number,[num_digits])

函数语法参数

TRUNC 函数语法具有下列参数:

Number 必需,需要截尾取整的数字。

Num_digits 可选,用于指定取整精度的数字。

Num_digits 的默认值为 0。

说明

TRUNC 和 INT 类似,都返回整数。TRUNC 直接去除数字的小数部分,而 INT 则是依照给定数的小数部分的值,将其向小方向到最接近的整数。INT 和 TRUNC 在处理负数时有所不同:TRUNC(-4.3) 返回 -4,而 INT(-4.3) 返回 -5,因为 -5 是较小的数。

显示全文