Oracle round函数区别介绍_oracle_脚本之家

by admin on 2019年11月26日

Oracle函数多种多样,系统变量函数就是其中之一,下面就为您介绍三种最常见的系统变量函数,希望对您学习Oracle能有所帮助。

round返回四舍五入后的值
x,y,数字型表达式,如果y不为整数则截取y整数部分,如果y>0则四舍五入为y位小数,如果y小于0则四舍五入到小数点向左第y位。
select round,round,round from dual; 返回: 5555.67 , 5600 , 5556
返回截取后的值,用法同round,只是不四舍五入
trunc返回x按精度y截取后的值
x,y,数字型表达式,如果y不为整数则截取y整数部分,如果y>0则截取到y位小数,如果y小于0则截取到小数点向左第y位,小数前其它数据用0表示。
select trunc,trunc,trunc from dual; 返回:5555.66 5500 5555
返回截取后的值,用法同trunc,只是要做四舍五入**

在Oracle数据库中,Oracle
to_date()函数是我们经常使用的函数,下面就为您详细介绍Oracle
to_奥门威尼斯网址,date()函数的用法,希望可以对您有所启迪。

1.创建测试表:

Oracle系统变量函数:

to_date()与24小时制表示法及mm分钟的显示:

复制代码 代码如下:DROP SEQUENCE
student_sequence;CREATE SEQUENCE student_sequence START WITH 10000
INCREMENT BY 1;

SYSDATE

一、在使用Oracle的to_date函数来做日期转换时,很多Java程序员也许会直接的采用”yyyy-MM-dd
HH:mm:ss”的格式作为格式进行转换,但是在Oracle中会引起错误:”ORA 01810
格式代码出现两次”。

DROP TABLE students;CREATE TABLE students PRIMARY KEY, first_name
VARCHAR2, last_name VARCHAR2, major VARCHAR2, current_credits NUMBER);

该函数返回当前的日期和时间。返回的是Oracle服务器的当前日期和时间。

select to_date(‘2005-01-01 13:14:20′,’yyyy-MM-dd HH24:mm:ss’) from
dual;

INSERT INTO students (id, first_name, last_name, major,
current_credits,grade) VALUES (student_sequence.NEXTVAL, ‘Scott’,
‘Smith’, ‘Computer Science’, 98,null);

select sysdate from dual;insert into purchase values(‘Small
Widget’,’SH’,sysdate, 10);insert into purchase values(‘Meduem
Wodget’,’SH’,sysdate-15, 15);

如:原因是SQL中不区分大小写,MM和mm被认为是相同的格式代码,所以Oracle的SQL采用了mi代替分钟。

INSERT INTO students (id, first_name, last_name, major,
current_credits,grade) VALUES (student_sequence.NEXTVAL, ‘Margaret’,
‘Mason’, ‘History’, 88,null);

查看最近30天的所有销售记录,使用如下命令:

select to_date(‘2005-01-01 13:14:20′,’yyyy-MM-dd HH24:mi:ss’) from
dual;

INSERT INTO students (id, first_name, last_name, major,
current_credits,grade) VALUES (student_sequence.NEXTVAL, ‘Joanne’,
‘Junebug’, ‘Computer Science’, 75,null);

select * from purchasewhere purchase_date between and sysdate;

二、另要以24小时的形式显示出来要用HH24

INSERT INTO students (id, first_name, last_name, major,
current_credits,grade) VALUES (student_sequence.NEXTVAL, ‘Manish’,
‘Murgratroid’, ‘Economics’, 66,null);

USER

select to_char(sysdate,’yyyy-MM-dd HH24:mi:ss’) from
dual;//mi是分钟select to_char(sysdate,’yyyy-MM-dd HH24:mm:ss’) from
dual;//mm会显示月份

commit;

select user from dual;USERENV

oracle中的to_date参数含义

2.查看相应数据

查看用户环境的各种资料。

1.日期格式参数 含义说明

复制代码 代码如下:SQL> select * from
students;

select userenv FROM dual;

D 一周中的星期几 DAY 天的名字,使用空格填充到9个字符 DD 月中的第几天 DDD
年中的第几天 DY 天的简写名 IW ISO标准的年中的第几周 IYYY
ISO标准的四位年份 YYYY 四位年份 YYY,YY,Y 年份的最后三位,两位,一位 HH
小时,按12小时计 HH24 小时,按24小时计 MI 分 SS 秒 MM 月 Mon 月份的简写
Month 月份的全名 W 该月的第几个星期 WW 年中的第几个星期
1.日期时间间隔操作 当前时间减去7分钟的时间 select sysdate,sysdate –
interval ‘7’ MINUTE from dual 当前时间减去7小时的时间 select sysdate –
interval ‘7’ hour from dual 当前时间减去7天的时间 select sysdate –
interval ‘7’ day from dual 当前时间减去7月的时间 select sysdate,sysdate

ID FIRST_NAME LAST_NAME MAJOR CURRENT_CREDITS GR———-

以上Oracle系统变量函数的介绍。

  • interval ‘7’ month from dual 当前时间减去7年的时间 select
    sysdate,sysdate – interval ‘7’ year from dual 时间间隔乘以一个数字
    select sysdate,sysdate – 8 *interval ‘2’ hour from dual

    select sysdate,to_char(sysdate,’yyyy-mm-dd hh24:mi:ss’) from dual select sysdate,to_char(sysdate,’yyyy-mm-dd hh:mi:ss’) from dual select sysdate,to_char(sysdate,’yyyy-ddd hh:mi:ss’) from dual select sysdate,to_char(sysdate,’yyyy-mm iw-d hh:mi:ss’) from dual


参考oracle的相关关文档(ORACLE901DOC/SERVER.901/A90125/SQL_ELEMENTS4.HTM#48515)

————— — 10000 Scott Smith Computer Science 98 10001 Margaret
Mason History 88 10002 Joanne Junebug Computer Science 75 10003 Manish
Murgratroid Economics 66

select to_date(‘2003-10-17 21:15:37′,’yyyy-mm-dd hh24:mi:ss’) from dual

3.更新语句

具体用法和上面的to_char差不多。

复制代码 代码如下:update studentsset
grade = (select grade from(select id,case when current_credits > 90
then ‘a’ when current_credits > 80 then ‘b’ when current_credits
> 70 then ‘c’else ‘d’ end gradefrom students) awhere a.id =
students.id)/

  1. trunk/ ROUND函数的使用

    select trunc from dual select trunc from dual select to_char(trunc,’YYYY’) from dual

4.更新后结果

5.oracle有毫秒级的数据类型

复制代码 代码如下:SQL> select * from
students;

--返回当前时间 年月日小时分秒毫秒 select to_char,'DD-MON-YYYY HH24:MI:SSxFF') from dual; --返回当前 时间的秒毫秒,可以指定秒后面的精度 select to_char,'MI:SSxFF') from dual;

ID FIRST_NAME LAST_NAME MAJOR CURRENT_CREDITS GR———-

6.计算程序运行的时间


declare type rc is ref cursor; l_rc rc; l_dummy all_objects.object_name%type; l_start number default dbms_utility.get_time; begin for I in 1 .. 1000 loop open l_rc for 'select object_name from all_objects '|| 'where object_id = ' || i; fetch l_rc into l_dummy; close l_rc; end loop; dbms_output.put_line ( round( (dbms_utility.get_time-l_start)/100, 2 ) || ' seconds...' ); end; 

————— — 10000 Scott Smith Computer Science 98 a 10001
Margaret Mason History 88 b 10002 Joanne Junebug Computer Science 75 c
10003 Manish Murgratroid Economics 66 d

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图