trunc

SQL查询

ⅰ亾dé卋堺 提交于 2019-11-28 00:42:46
注 : dual 是一个虚拟表,用来构成select的语法规则,它实际是不存在的 一:单行函数 •字符串处理函数:UPPER(),LOWER() ,INITCAP(),LENGTH(),SUBSTR(),REPLACE(); •数值处理函数:ROUND(),TRUNC(),MOD(); •日期处理函数:ADD_MONTHS(),MONTHS_BETWEEN(),LAST_DAY(),NEXT_DAY(); •转换函数:TO_DATE(),TO_CHAR(),TO_NUMBER(); •通用函数:NVL(),DECODE()。 1.字符串处理函数 (1).转大小写函数: •转大写函数:UPPER(字符串 | 列); •转小写函数:LOWER(字符串| 列); SELECT LOWER (ename) FROM 表名 ; //查询表里员工姓名,姓名小写显示 SELECT * FROM 表名 WHERE ename= UPPER ('inputName'); //查询输入的员工姓名,转大写 (2).获取字符串长度: •长度函数:数字 LENGTH(字符串 | 列); SELECT * FROM emp WHERE LENGTH (ename) = 5 ; //查询所有姓名长度为5的雇员信息 (3).字符串截取; SUBSTR(汉译:字符串的子串,就是截取呀) •截取函数:字符串

Oracle日期周详解以及周开始结束时间计算

落爺英雄遲暮 提交于 2019-11-27 04:42:16
1 ORACLE中周相关知识描述 1.1 日期格式化函数 TO_CHAR(X [,FORMAT]) :将X按FORMAT格式转换成字符串。X是一个日期,FORMAT是一个规定了X采用何种格式转换的格式字符串,FORMAT与周相关的有W,WW,IW,D,FMWW。 W 的含义是一个月的第几周。是按照ORACLE自定义的标准周来返回周数。 IW 是ISO标准周,它的含义是ISO标准周以周别为“主线”,每年最多可以有53个周别,但是每年至少要包含52个周别;如果一年当中第52周别之后至当年的12月31日之间,还有大于或等于4天的话,则定为当年的第53周,否则剩余这些天数被归为下一年的第1周;如果在不足52周别的话,则以下一年的时间来补;每周固定的从周一开始作为本周的第1天,到周日作为本周的第7天;比如:在Oracle中 2012年01月01号依然属于IW周别2011年的第52周的第7天。这个用到的比较多。 WW 是ORACLE自定义的标准周,它的含义是每年的1月1日作为当年的第一周的第一天(不管当年的1月1日是星期几);比如:2014年01年01是周三,在Oracle中被定义为2014年WW的第一周的第一天。一般很少用到。 D 是返回当前日期是这个星期的第几天。是按照从周日到周六来进行计算的,这是要注意的地方。 FMWW 该年1月1号(不考虑属星期几)开始至该年该一个星期日为第一周

ORACLE日期时间函数大全(转)

蓝咒 提交于 2019-11-27 04:17:38
转载: http://www.cnblogs.com/chuncn/archive/2009/04/29/1381282.html ORACLE日期时间函数大全 TO_DATE格式(以时间:2007-11-02 13:45:25为例) Year: yy two digits 两位年 显示值:07 yyy three digits 三位年 显示值:007 yyyy four digits 四位年 显示值:2007 Month: mm number 两位月 显示值:11 mon abbreviated 字符集表示 显示值:11月,若是英文版,显示nov month spelled out 字符集表示 显示值:11月,若是英文版,显示november Day: dd number 当月第几天 显示值:02 ddd number 当年第几天 显示值:02 dy abbreviated 当周第几天简写 显示值:星期五,若是英文版,显示fri day spelled out 当周第几天全写 显示值:星期五,若是英文版,显示friday ddspth spelled out, ordinal twelfth Hour: hh two digits 12小时进制 显示值:01 hh24 two digits 24小时进制 显示值:13 Minute: mi two digits 60进制 显示值

oracle job 定时执行 存储过程

删除回忆录丶 提交于 2019-11-27 00:06:31
一:简单测试 job 的创建过程案例: 1 ,先创建一张 JOB_TEST 表,字段为 a 日期格式 SQL> create table JOB_TEST(a date); Table created SQL> commit; Commit complete 2 ,创建一个存储过程 bb 作用是往 pig 表中插入数据 SQL> create or replace procedure JOB_PRO_TEST as 2 begin 3 insert into JOB_TEST values(sysdate); 4 end; 5 / Procedure created 3 ,创建一个 job ,名称为 job2010 ;作用是每分钟( 60 × 24=1440 )执行一次存储过程 JOB_PRO_TEST 。 SQL> variable job2010 number; SQL> begin 2 dbms_job.submit(:job2010,'JOB_PRO_TEST;',sysdate,'sysdate+1/1440'); 3 end; 4 / 注意:这里系统自动生成 job id 为 41 PL/SQL procedure successfully completed job2010 --------- 41 4 ,运行 job2010 SQL> begin 2 dbms

oracle定时执行存储过程

一曲冷凌霜 提交于 2019-11-25 22:15:01
需求 每小时进行一次查询统计数据,并将数据插入到自定义的表当中 效果 创建存储过程 create or replace procedure summary_data as v_dcppv number; v_jd12h number; v_dby number; v_xby number; v_bj number; v_bn number; v_zdzf number; v_wxzf number; v_jfzf number; v_yhdj number; v_dgzs number; v_tds number; v_tds2 number; begin --单次 select count(1) into v_dcppv from iptvsp_wt_req a where servicecode = 'JK0008' and a.instime between trunc(sysdate, 'hh') - 1 / 24 and trunc(sysdate, 'hh') - 1 / 86400 and orderstatus = 1 and order_type in (0, 1) and order_time IN (48, 30) and a.user_id like '116%'; --酒店 select count(1) into v_jd12h from iptvsp