oracle日期函数

Oracle中的date与timestamp

喜夏-厌秋 提交于 2019-12-24 11:47:02
在 ORACLE 中存储 DATE 和时间信息的话,实际上你有两种字段数据类型的选择( 9i )。 DATE 数据类型 可以存储月,年,日,世纪,时,分和秒。度量粒度是秒 以使用 TO_CHAR 函数把 DATE 数据进行传统地包装,达到表示成多种格式的目的 SELECT TO_CHAR(sysdate,'MM/DD/YYYY HH24:MI:SS') "Date" FROM dual 大多数人陷入的麻烦就是计算两个时间间的间隔年数、月数、天数、小时数和秒数。你需要明白的是,当你进行两个日期的相减运算的时候,得到的是“带小数位的天数”。 可以通过一个函数将天数转换成“天时分秒”格式: CREATE OR REPLACE FUNCTION F_DAYS2STR(P_DAYS IN NUMBER DEFAULT 0 ) RETURN VARCHAR2 IS --Ver:1.0 --Created by xsb on 2005-05-26 --For: 将天数转换成天时分秒格式 DAYS NUMBER := NVL(P_DAYS, 0 ); VD NUMBER; -- 天 VH NUMBER; -- 小时 VM NUMBER; -- 分 VS NUMBER; -- 秒 RESULT VARCHAR2( 100 ); -- 返回值 BEGIN VD := TRUNC(DAYS); VH :

oracle 日期格式

扶醉桌前 提交于 2019-12-20 15:30:01
to_date("要转换的字符串","转换的格式") 两个参数的格式必须匹配,否则会报错。 即按照第二个参数的格式解释第一个参数。 to_char(日期,"转换格式" ) 即把给定的日期按照“转换格式”转换。 转换的格式: 表示year的:y 表示年的最后一位 yy 表示年的最后2位 yyy 表示年的最后3位 yyyy 用4位数表示年 表示month的:mm 用2位数字表示月;mon 用简写形式 比如11月或者nov ;month 用全称 比如11月或者november 表示day的:dd 表示当月第几天;ddd表示当年第几天;dy 当周第几天 简写 比如星期五或者fri;day当周第几天 全写 比如星期五或者friday。 表示hour的:hh 2位数表示小时 12进制; hh24 2位数表示小时 24小时 表示minute的:mi 2位数表示分钟 表示second的:ss 2位数表示秒 60进制 表示季度的:q 一位数 表示季度 (1-4) 另外还有ww 用来表示当年第几周 w用来表示当月第几周。 24小时制下的时间范围:00:00:00-23:59:59 12小时制下的时间范围:1:00:00-12:59:59 比如: select to_char(sysdate,'yy-mm-dd hh24:mi:ss') from dual //显示:08-11-07 13:22:42

Oracle单值函数以及多表查询

依然范特西╮ 提交于 2019-12-11 14:58:46
第三章:单值函数 函数分为: 1.单值函数 1.字符函数 2.日期函数 3.转换函数 4.数字函数 2.分组函数(后面的章节再做学习) 哑表dual dual是一个虚拟表,用来构成select的语法规则,oracle保证dual里面永远只有一条记录。 例如: 显示1+1的结果,可以看出,dual很多时候是为了构成select的标准语法 select 1+1 from dual; 字符函数 LOWER Converts to lowercase UPPER Converts to uppercase INITCAP Converts to initial capitalization CONCAT Concatenates values SUBSTR Returns substring LENGTH Returns number of characters NVL Converts a null value lower 把字符转为小写 例如:把'HELLO'转换为小写 select lower('HELLO') from dual; 例如:把s_emp表中的last_name列的值转换为小写 select lower(last_name) from s_emp; upper 把字符转换为大写 例如:把'world'转换为大写 select upper('world') from

Oracle trunc函数的使用

三世轮回 提交于 2019-12-06 02:53:20
1. 对日期的操作 2. 对数字的操作 1、对日期的操作 /**************日期********************/ SELECT TRUNC(SYSDATE) FROM DUAL; --2019/11/29 今天的日期为2019/11/29 SELECT TRUNC(SYSDATE, 'MM') FROM DUAL; --2019/11/01 返回当月第一天. SELECT TRUNC(SYSDATE,'YY') FROM DUAL; --2019/11/01 返回当年第一天 SELECT TRUNC(SYSDATE,'YYYY') FROM DUAL; --2019/01/01 返回当年第一天 SELECT TRUNC(SYSDATE,'DD') FROM DUAL; --2019/11/29 返回当前年月日 SELECT TRUNC(SYSDATE,'D') FROM DUAL; --2019/11/24 (星期天)返回当前星期的第一天 SELECT TRUNC(SYSDATE, 'HH24') FROM DUAL; --2019/11/29 17:00:00 当前时间为17:11 SELECT TRUNC(SYSDATE, 'MI') FROM DUAL; --2019/11/29 17:11:00 TRUNC()函数没有秒的精确 2、对数字的操作 /**

delphi 格式转换

戏子无情 提交于 2019-12-06 02:24:17
TO_CHAR 是把日期或数字转换为字符串 TO_DATE 是把字符串转换为数据库中得日期类型转换函数 TO_NUMBER 将字符转化为数字 TO_CHAR 使用TO_CHAR函数处理数字 TO_CHAR(number, '格式') TO_CHAR(salary,’$99,999.99’); 使用TO_CHAR函数处理日期 TO_CHAR(date,’格式’);  TO_NUMBER 使用TO_NUMBER函数将字符转换为数字 TO_NUMBER(char[, '格式']) TO_DATE 使用TO_DATE函数将字符转换为日期 TO_DATE(char[, '格式']) 数字格式格式 9 代表一个数字 0 强制显示0 $ 放置一个$符 L 放置一个浮动本地货币符 . 显示小数点 , 显示千位指示符  日期格式 格式控制 描述 YYYY、YYY、YY 分别代表4位、3位、2位的数字年 YEAR 年的拼写 MM 数字月 MONTH 月的全拼 MON 月的缩写 DD 数字日 DAY 星期的全拼 DY 星期的缩写 AM 表示上午或者下午 HH24、HH12 12小时制或24小时制 MI 分钟 SS 秒钟 SP 数字的拼写 TH 数字的序数词 “特殊字符” 假如特殊字符 HH24:MI:SS AM 15:43:20 PM 日期例子: SELECT TO_DATE('2006-05-01

Oracle数据库-sql语句

拥有回忆 提交于 2019-12-05 21:01:34
单表的查询语句 1、查询表的所有数据 select * from 表名;*代表所有   select * from emp; 2、查询表中指定字段的值 select 字段名1,字段名2,...from表名    select empno,ename from emp; 3、给查询结果中的字段使用别名   在字段名后使用关键字 字段名 as "别名"   作用:方便查看查询结果   注意:as关键字可以省略不写,别名中没有特殊字符双引号也可以省略不写。   select empno 员工编号,ename"员工 姓名",job as 工作,mgr as "领导编号" from emp; 4、连接符:select 字段名||'字符'||字段名||..... from 表名   ||为sql语句的字符链接符,使用在select和from之间   字符链接格式为 字段名||'字符'||字段名   注意:一个拼接好的连接在结果集中是作为一个新的字段显示,可以使用别名优化字段显示。   select empno||'的姓名是'||ename as "信息",job||'哈哈'||mgr from emp; 5、去除重复 select distinct 字段名,字段名,...fromn 表名   注意:去除重复的规则是按照行进行去除的,多行数据完全相同取其一   select distinct

数据库oracle基础语句

心已入冬 提交于 2019-12-05 14:02:50
一、运算符 算术运算符:+ - * / 可以在select 语句中使用 连接运算符:|| select deptno|| dname from dept; 比较运算符:> >= = != < <= like between is null in 逻辑运算符:not and or 集合运算符: intersect ,union, union all, minus 要求: 对应集合的列数和数据类型相同 查询中不能包含long 列 列的标签是第一个集合的标签 使用order by时,必须使用位置序号,不能使用列名 例:集合运算符的使用: 复制代码 代码如下: intersect ,union, union all, minus select * from emp intersect select * from emp where deptno=10 ; select * from emp minus select * from emp where deptno=10; select * from emp where deptno=10 union select * from emp where deptno in (10,20); --不包括重复行 select * from emp where deptno=10 union all select * from emp where

oralce与mysql的区别

大城市里の小女人 提交于 2019-12-04 23:38:42
1. 有些人说Oracle没有限制,实际上他们说得可能是Oracle不支持LIMIT语法.不过可以rownum虚列来实现,不过会更加麻烦.   2. Oracle不支持偏移(offset)语法. 3. Oracle的复制功能可能比MySQL更加健壮,不过也更加难以配置.   4. 对于多个Master类型的系统,大部分用户都希望你使用更加复杂也更加昂贵的Oracle RAC(虽然可能NDB更加健壮).   5. Oracle的分区功能非常健壮,但是它不是内置的,并需要专门为此付费(分区功能是在Enterprise Edition里面是内置的).   6. 在Linux/Unix上,Oracle并不象Mysql那么方便,很多Linux/Unix发行版默认就会自带Mysql.(我对这一点的理解与翻译可能都有偏差)   7. INSERT … ON DUPLICATE KEY UPDATE语法将不再可用,不过你需要学习更加复杂(但是符合SQL标准)的MERGE语法.   8. Oracle的ROLE架构与MySQL有很大差异,无法再使用root角色来完整所有工作.(不过Sys用户的权限仍然与root相差无几,只是为了安全着想,不建议这么使用了).   9. Role 帐户与特定的Schema联系在一起(反之也一样),类似于MySQL数据库中的Database概念.

mysql和oracle的不同

不问归期 提交于 2019-12-03 16:31:50
一、日期处理 oracle查询当前日期:select to_char(sysdate,'yyyy-mm-dd') from dual; mysql查询当前日期:select date_format(now(),'%Y-%m-%d'); 二、连接字符串在Oracle中用|| ,SqlServer中用+,MySQL中用concat('a','b','c') 三、mysql与oracle数据库实现自增列的区别: mysql可以实现自增列,只要在建表时设置auto_increment即可,而oracle在建表时不能设置自增列功能,必须通过sequence序列来实现自增列功能。 四、mysql与oracle数据库索引的区别: 在整个数据库内,mysql的索引可以同名,也就是说mysql的索引是表级别的;但是Oracle索引不可以同名,也就是说Oracle的索引是数据库级别的; mysql的索引是从0开始,oracle的索引是从1开始。 五、翻页的SQL语句的处理 MYSQL处理翻页的SQL语句比较简单,用LIMIT开始位置,记录个数; ORACLE处理翻页的 SQL语句就比较繁琐了。每个结果集只有一个ROWNUM字段标明它的位置,并且只能用ROWNUM<100,不能用ROWNUM>80。 六、组函数用法规则 mysql中组函数在select语句中可以随意使用

Oracle的LAST_DAY函数

匿名 (未验证) 提交于 2019-12-03 00:39:02
last_day(time) :返回指定日期所在月份的最后一天; 查询当前月份的最后一天: select last_day(sysdate) from dual; 查询某天所在月份的最后一天: select last_day(to_date( '1992-10-09' , 'yyyy-mm-dd' )) from dual; 如: 查询每一个月最后一天过生日的同学: select * from stu where last_day(birthday) = birthday; LAST_DAY 函数返回指定日期对应月份的最后一天。 获取当前日期的最后一天 SQL> SELECT last_day(SYSDATE) FROM dual; 运行结果: LAST_DAY(SYSDATE) ----------------- 2016/12/31 15:39: 获取当前日期和当前日期所在月的最后一天 SQL> SELECT SYSDATE, LAST_DAY(SYSDATE) "Last" , LAST_DAY(SYSDATE) - SYSDATE "Days Left" FROM DUAL; 运行结果: SYSDATE Last Days Left - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 2016/12