/**************日期 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记。
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记。
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 是较小的数。