网站首页 > 文章中心 > 其它

oracle怎么计算日期

作者:小编 更新时间:2023-09-21 17:09:09 浏览量:24人看过

oracle 日期计算

oracle 获取日期

oracle中最简单获取日期的方式是通过查询sysdate来获取.

语句如下:

select?sysdate?from?dual;

结果:

如果只获取日期部分:

select?to_char(sysdate,'yyyy-mm-dd')?from?dual;

Oracle日期函数有哪些

ORACLE日期时间函数大全

Year:

Month:

mm number 两位月 显示值:11

mon abbreviated 字符集表示 显示值:11月,若是英文版,显示nov

month spelled out 字符集表示 显示值:11月,若是英文版,显示november

Day:

dy abbreviated 当周第几天简写 显示值:星期五,若是英文版,显示fri

day spelled out 当周第几天全写 显示值:星期五,若是英文版,显示friday

ddspth spelled out, ordinal twelfth

Hour:

Minute:

Second:

其它

W digit 当月第几周 显示值:1

① 日期和字符转换函数用法(to_date,to_char)

select to_char(sysdate,'yyyy') as nowYear from dual; //获取时间的年

select to_char(sysdate,'mm') as nowMonth from dual; //获取时间的月

select to_char(sysdate,'dd') as nowDay from dual; //获取时间的日

select to_char(sysdate,'mi') as nowMinute from dual; //获取时间的分

select to_char(sysdate,'ss') as nowSecond from dual; //获取时间的秒

显示Two Hundred Twenty-Two

星期一

monday

设置日期语言

ALTER SESSION SET NLS_DATE_LANGUAGE='AMERICAN';

也可以这样

select id, active_date from table1

UNION

select 1, TO_DATE(null) from dual;

注意要用TO_DATE(null)

所以,当时间需要精确的时候,觉得to_char还是必要的

alter system set NLS_DATE_LANGUAGE = American

alter session set NLS_DATE_LANGUAGE = American

或者在to_date中写

注意我这只是举了NLS_DATE_LANGUAGE,当然还有很多,

可查看

select * from nls_session_parameters

select * from V$NLS_PARAMETERS

select count(*)

from ( select rownum-1 rnum

from all_objects

)

在前后分别调用DBMS_UTILITY.GET_TIME, 让后将结果相减(得到的是1/100秒, 而不是毫秒).

①.0. Next_day的用法

Next_day(date, day)

Monday-Sunday, for format code DAY

Mon-Sun, for format code DY

select to_char(sysdate,'hh:mi:ss') TIME from all_objects

注意:第一条记录的TIME 与最后一行是一样的

可以建立一个函数来处理这个问题

create or replace function sys_date return date is

begin

return sysdate;

end;

select to_char(sys_date,'hh:mi:ss') from all_objects;

extract()找出日期或间隔值的字段值

SQL select sysdate ,to_char(sysdate,'hh') from dual;

SYSDATE TO_CHAR(SYSDATE,'HH')

-------------------- ---------------------

-------------------- -----------------------

select older_date,

newer_date,

years,

months,

abs(

trunc(

newer_date-

) days

from ( select

older_date

from (

select hiredate older_date, add_months(hiredate,rownum)◆rownum newer_date

from emp

闰年的处理方法

------- ----

yyyy 01 0001

select to_char( NEW_TIME( sysdate, 'GMT','EST'), 'dd/mm/yyyy hh:mi:ss') ,sysdate

from dual;

from dual

select TO_CHAR(SYSDATE,'DDD'),sysdate from dual

select

Days,

A,

from

(

trunc(sysdate) Days,

sysdate - trunc(sysdate) A

select * from tabname

//

日 一 二 三 四 五 六

---------------------------------------------------------------

日期 返回的是天 然后 转换为ss

select sysdate S1,

round(sysdate,'year') YEAR,

round(sysdate,'month') MONTH ,

round(sysdate,'day') DAY from dual

trunc(sysdate,'year') YEAR, //返回当前年的1月1日,无时分秒

trunc(sysdate,'month') MONTH , //返回当前月的1日,无时分秒

trunc(sysdate,'day') DAY //返回当前星期的星期天,无时分秒

注:oracle时间差是以天数为单位,所以换算成年月,日

注:oracle时间加减是以天数为单位,设改变量为n,所以换算成年月,日

Oracle计算指定日期内的工作日(不包含周末)

~~~

select(trunc(end_dt - start_dt) -

((case

ELSE

? ? ? ? trunc((trunc(end_dt - start_dt) -

(case

asworkingdays

fromdual

下面的sql可以直接运行:

以上就是土嘎嘎小编为大家整理的oracle怎么计算日期相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章