trunc

oracle获取系统日期--当前时间+前一天+当前月+前一个月

大憨熊 提交于 2020-04-07 19:52:30
目录 获取系统日期: SYSDATE 当前日: 前一天: 前一天转换为日期格式: 前一个月日期: 前一个月: 后一个月转换为字符串: 补充:格式化日期 获取系统日期: SYSDATE 当前日: select TRUNC(SYSDATE) from dual; 前一天: select TRUNC(SYSDATE-1) from dual; 前一天转换为日期格式: select to_char(TRUNC(SYSDATE-1),'fmdd') from dual; 前一个月日期: select add_months(trunc(sysdate),-1) from dual; 前一个月: select TRUNC(add_months(trunc(sysdate),-1),'MM') from dual; 或者 select to_char(add_months(trunc(sysdate),-1),'yyyy-mm') from dual; 后一个月转换为字符串: select TRUNC(add_months(trunc(sysdate),1),'MM') from dual; 或者 select to_char(add_months(trunc(sysdate),1),'yyyy-mm') from dual; 补充:格式化日期 TO_CHAR(SYSDATE,'YY/MM/DD

Oracle date和timestamp区别

不羁的心 提交于 2020-04-02 15:14:43
<转自> http://blog.csdn.net/huaguoming/article/details/8693679 在今天的工作中,学到了以下几个知识点: 一、date和timestamp 的区别 date类型是Oracle常用的日期型变量,他的时间间隔是秒。两个日期型相减得到是两个时间的间隔,注意单位是“天”。例如:查看一下当前距离伦敦奥运会开幕还有多长时间: select to_date('2012-7-28 03:12:00','yyyy-mm-dd hh24:mi:ss')-sysdate from dual 结果是:92.2472685185185天,然后你根据相应的时间换算你想要的间隔就行!这个结果可能对程序员有用,对于想直接看到结果的人,这个数字还不是很直观,所以,就引出了timestamp类型 timestamp是DATE类型的扩展,可以精确到小数秒( fractional_seconds_precision),可以是 0 to9,缺省是6。两个timestamp相减的话,不能直接的得到天数书,而是得到,多少天,多少小时,多少秒等,例如:同样查看一下当前距离伦敦奥运会开幕还有多长时间: select to_timestamp('2012-7-28 03:12:00','yyyy-mm-dd hh24:mi:ss')-systimestamp from dual

oracle常见日期函数

倾然丶 夕夏残阳落幕 提交于 2020-03-23 06:02:35
--常用日期函数 1、Sysdate 当前日期和时间 Select sysdate from dual; 2、Add_months(d,n) 当前日期d后推n个月 用于从一个日期值增加或减少一些月份 当前日期后两个月: Select add_months(sysdate,2) from dual; 当前日期前三个月: Select add_months(sysdate,-3) from dual; ADD_MONTHS是运算函数,函数将一个日期上加上一指定的月份数,所以,日期中的日是不变的。然而,如果开始日期是某月的最后一天,那么,结果将会调整以使返回值仍对应新的一月的最后一天。如果,结果月份的天数比开始月份的天数少,那么,也会向回调整以适应有效日期。 3、dbtimezone()返回时区 select dbtimezone from dual; 4,round[舍入到最接近的日期](day:舍入到最接近的星期日) select sysdate S1, round(sysdate) S2 , round(sysdate,'year') YEAR, round(sysdate,'month') MONTH , round(sysdate,'day') DAY fromdual 5、next_day( date, weekday )指定日期的下一个日期 语法 : next_day(

ORACLE中日期和时间函数汇总

邮差的信 提交于 2020-03-16 08:45:30
在oracle中处理日期大全 TO_DATE格式 Day: dd number 12 dy abbreviated fri day spelled out friday ddspth spelled out, ordinal twelfth Month: mm number 03 mon abbreviated mar month spelled out march Year: yy two digits 98 yyyy four digits 1998 24小时格式下时间范围为: 0:00:00 - 23:59:59.... 12小时格式下时间范围为: 1:00:00 - 12:59:59 .... 1. 日期和字符转换函数用法(to_date,to_char) 2. select to_char( to_date(222,'J'),'Jsp') from dual 显示Two Hundred Twenty-Two 3. 求某天是星期几 select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day') from dual; 星期一 select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day','NLS_DATE_LANGUAGE = American') from dual;

Oracle学习笔记:trunc函数

让人想犯罪 __ 提交于 2020-03-10 02:31:15
在 Oracle 中可以使用 trunc() 函数进行日期截取和数字截取。 一、日期截取 使用语法: trunc(date, [fmt]) -- 实例 -- select trunc(sysdate) from dual; -- 2018/11/14 返回当前的日期 select trunc(sysdate,'yyyy') from dual; -- 2018/1/1 返回当年第一天 select trunc(sysdate,'yy') from dual; -- 同上 select trunc(sysdate,'mm') from dual; -- 2018/11/1 返回当月第一天 select trunc(sysdate,'d') from dual; -- 2018/11/11 返回当周第一天 即周日 select trunc(sysdate,'dd') from dual; -- 2018/11/14 返回当前的日期 同省略格式 select trunc(sysdate,'HH24') from dual; -- 2018/11/14 刚好12点 所以00:00:00 省略 select trunc(to_date('20180513 12:30:19','yyyymmdd hh24:mi:ss'),'hh24') from dual; -- 2018/5/13 12

常用数学函数介绍

孤街浪徒 提交于 2020-02-29 06:28:28
15、abs 返回指定值的绝对值; SQL>select abs(100),abs(-100) from dual; ABS(100) ABS(-100) ---------- ---------- 100 100 16、acos 给出反余弦的值; SQL>select acos(-1) from dual; ACOS(-1) ---------- 3.14159265 17、asin 给出反正弦的值; SQL>select asin(0.5) from dual; ASIN(0.5) ---------- 0.52359877 18、atan 返回一个数字的反正切值; SQL>select atan(1) from dual; ATAN(1) ---------- 0.78539816 19、ceil 返回大于或等于给出数字的最小整数; SQL>select ceil(3.14159265) from dual; CEIL(3.14159265) ---------------- 4 特别说明:ceil返回的最小整数并不是四舍五入返回整数,而是返回给定值最近且大于给定值的整数。 20、cos 返回一个给定数字的余弦; SQL>select cos(-3.14159265) from dual; COS(-3.14159265) ---------------- -1 21

ORACLE 定时执行存储过程

纵饮孤独 提交于 2020-02-22 07:29:16
[sql] view plain copy /* 查询: select job,broken,what,interval,t.* from user_jobs t; job job的唯一标识,自动生成的 broken 是否处于运行状态,N;运行;Y:停止 what 存储过程名称 next_date 初次执行时间 interval 执行周期 删除: begin dbms_job.remove(jobno); end; 根据what的内容确定其对应的job,并如此执行删除 执行时间例子: 描述 INTERVAL参数值 每天午夜12点 ''TRUNC(SYSDATE + 1) '' 每天早上8点30分 ''TRUNC(SYSDATE + 1) + (8*60+30)/(24*60) '' 每星期二中午12点 ''NEXT_DAY(TRUNC(SYSDATE ), '' ''TUESDAY '' '' ) + 12/24 '' 每个月第一天的午夜12点 ''TRUNC(LAST_DAY(SYSDATE ) + 1) '' 每个季度最后一天的晚上11点 ''TRUNC(ADD_MONTHS(SYSDATE + 2/24, 3 ), ''Q '' ) -1/24 '' 每星期六和日早上6点10分 ''TRUNC(LEAST(NEXT_DAY(SYSDATE, '' ''SATURDAY "),

oracle中关于日期的获取

浪尽此生 提交于 2020-02-12 18:23:02
最近的一个功能定时任务要求在当天凌晨2点生成前一天的数据。涉及到数据库时间的操作,特此记录一下,整理关于日期获取的笔记如下 -- 获取当前系统的前一天日期0点到23:59:59的时间 select TRUNC(SYSDATE - 1) , TRUNC(SYSDATE - 1)+1-1/86400 from dual; --获取当天时间的0时0分 select TRUNC(SYSDATE) FROM dual; --获取当天时间的23点59分59秒(在当天0时0分0秒的基础上加1天后再减1秒) SELECT TRUNC(SYSDATE)+1-1/86400 FROM dual; --取得当前日期是一个星期中的第几天,注意:星期日是第一天 select to_char(sysdate,'D'),to_char(sysdate,'DAY') from dual; --获取当前月的第一天和最后一天 select to_char(sysdate,'yyyy-mm')||'-01' firstday,to_char(last_day(sysdate),'yyyy-mm-dd') lastday from dual; --获取当前月份 SELECT EXTRACT(MONTH FROM sysdate) FROM DUAL; --求出当前日期的下一个指定礼拜是几号

oracle经验总结

北慕城南 提交于 2020-02-05 11:45:08
获取本周TRUNC(SYSDATE,‘iw’) - 1第一天的日期 获取昨天的日期 to_char(TRUNC(SYSDATE - 1), ‘yyyy-mm-dd’) 获取本月to_char(sysdate, ‘yyyy-mm’) 来源: CSDN 作者: 爱好java的小男孩 链接: https://blog.csdn.net/qq_22899129/article/details/104179031

oracle系统包——dbms_job用法(oracle定时任务)

风流意气都作罢 提交于 2020-01-29 09:35:58
用于安排和管理作业队列,通过使用作业,可以使ORACLE数据库定期执行特定的任务。 一、dbms_job涉及到的知识点 1、 创建job : variable jobno number; dbms_job.submit(:jobno, —-job号 'your_procedure;',—-执行的存储过程, ';'不能省略 next_date, —-下次执行时间 'interval' —-每次间隔时间,interval以天为单位 ); –系统会自动分配一个任务号jobno。 2、 删除job : dbms_job.remove(jobno); 3、 修改要执行的操作 : job:dbms_job.what(jobno, what); 4、 修改下次执行时间 :dbms_job.next_date(jobno, next_date); 5、 修改间隔时间 :dbms_job.interval(jobno, interval); 6、 启动job : dbms_job.run(jobno); 7、 停止job : dbms.broken(jobno, broken, nextdate); –broken为boolean值 二、初始化相关参数job_queue_processes 1、job_queue_process表示oracle能够并发的job的数量,当job_queue