Oracle时间日期操作方法小结第1/2页
select older_date,
SQL> select sysdate ,to_char(sysdate,'hh') from dual;
WHEN to_number(to_char(SYSDATE,'hh24')) BETWEEN 11 AND 17 THEN '下午'
19.
trunc(months_between( newer_date, older_date )/12) YEARS,
SQL> select sysdate ,to_char(sysdate,'hh') from dual;
也可以这样
yyyy 99 0099
或者在to_date中写
1.
14.
mod(mod(date2-date1, 365), 30)作为日.
alter system set NLS_DATE_LANGUAGE = American
rrrr 99 1999
to_char( last_day( to_date('02' ¦ ¦ :year,'mmyyyy') ), 'dd' )
from ( select
sysdate+5 在系统时间基础上延迟5天
from dual
select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day','NLS_DATE_LANGUAGE = American') from dual;
rrrr 99 1999
6.
from all_objects
from emp )
Oracle 中的一些处理日期
一年的第几天
next_day(sysdate,6)是从当前开始下一个星期五。后面的数字是从星期日开始算起。
select count(*)
--计算工作日方法
months,
求某天是星期几
处理月份天数不定的办法
newer_date-
create or replace function sys_date return date is
一年的第几天
select older_date,
-------------------- ---------------------
rrrr 01 2001
)
select * from tabname
from dual
newer_date,
alter system set NLS_DATE_LANGUAGE = American
ALTER SESSION SET NLS_DATE_LANGUAGE='AMERICAN';
两个日期间的天数
select (sysdate-to_date('2003-12-03 12:55:45','yyyy-mm-dd hh24:mi:ss'))*24*60*60 from dual
13.
Days,
本月的最后一秒:select trunc(add_months(sysdate,1),'MM') - 1/24/60/60 from dual
)
ddspth spelled out, ordinal twelfth
dd number 12
from ( select hiredate older_date,
newer_date,
where rownum <= to_date('2002-02-28','yyyy-mm-dd') - to_date('2002-
找出今年的天数
SQL> select sysdate ,to_char(sysdate,'hh24') from dual;
Monday-Sunday, for format code DAY
floor((date2-date1, 365) /30) 作为月
可查看
两个日期间的天数
16.
12 ) MONTHS,
处理月份天数不定的办法
sysdate+5/24 在系统时间基础上延迟5小时
select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day','NLS_DATE_LANGUAGE = American') from dual;
4.
select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day','NLS_DATE_LANGUAGE = American') from dual;
from dual;
from ( select hiredate older_date,
from dual
21.计算小时,分,秒,毫秒
select * from V$NLS_PARAMETERS
yyyy与rrrr的区别
mon abbreviated mar
select months_between(to_date('01-31-1999','MM-DD-YYYY'),
SYSDATE TO_CHAR(SYSDATE,'HH')
SELECT EXTRACT(HOUR FROM TIMESTAMP '2001-02-16 2:38:40') from offer
months,
to_date('12-31-1998','MM-DD-YYYY')) "MONTHS" FROM DUAL;
add_months( older_date,years*12+months )
-------------------- ---------------------
select
TRUNC(A*24*60*60 - 60*TRUNC(A*24*60)) Seconds,
TRUNC(A*24) Hours,
获得小时数
from emp )
alter session set nls_date_format = 'yyyy-mm-dd';
1-7, for format code D
如果是28就不是闰年
2.
add_months(hiredate,rownum)+rownum newer_date
select floor(sysdate - to_date('20020405','yyyymmdd')) from dual;
2.
select (sysdate-to_date('2003-12-03 12:55:45','yyyy-mm-dd hh24:mi:ss'))*24*60*60 from dual
a_date between to_date('20011201','yyyymmdd') and to_date('20011231','yyyymmdd')
可以建立一个函数来处理这个问题
floor((date2-date1) /365) 作为年
注意:第一条记录的TIME 与最后一行是一样的
Month:
02-01','yyyy-mm-dd')+1
1 2 3 4 5 6 7
create or replace function sys_date return date is
select to_char(add_months(last_day(sysdate) +1, -2), 'yyyymmdd'),last_day(sysdate) from dual
select
可查看
trunc(
获得小时数
SELECT EXTRACT(HOUR FROM TIMESTAMP '2001-02-16 2:38:40') from offer
SQL> select sysdate ,to_char(sysdate,'hh') from dual;
Month:
14.
select 1, TO_DATE(null) from dual;
//
19.
12小时格式下时间范围为: 1:00:00 - 12:59:59 ....
TRUNC(A*24) Hours,
13.
TRUNC(A*24*60*60*100 - 100*TRUNC(A*24*60*60)) mSeconds
)
alter session set NLS_DATE_LANGUAGE = American
9.
2002-11-1 9:55:00 35786
那么12月31号中午12点之后和12月1号的12点之前是不包含在这个范围之内的。
'YYYY99 TO_C
所以,当时间需要精确的时候,觉得to_char还是必要的
查找2002-02-28至2002-02-01间除星期一和七的天数
to_date('12-31-1998','MM-DD-YYYY')) "MONTHS" FROM DUAL;
SELECT to_char(floor(TRUNC(936000/(60*60))/24))||'天'||to_char(mod(TRUNC(936000/(60*60)),24))||'小时' FROM DUAL
显示Two Hundred Twenty-Two
trunc(months_between( newer_date, older_date )/12) YEARS,
11
也可以这样
ddspth spelled out, ordinal twelfth
months,
month spelled out march
select * from nls_session_parameters
dd number 12
months,
to_date('12-31-1998','MM-DD-YYYY')) "MONTHS" FROM DUAL;
a_date between to_date('20011201','yyyymmdd') and to_date('20011231','yyyymmdd')
1
floor((date2-date1, 365) /30) 作为月
) days
今天是本月的第几周:SELECT TO_CHAR(SYSDATE,'WW') - TO_CHAR(TRUNC(SYSDATE,'MM'),'WW') + 1 AS "weekOfMon" FROM dual
310 2002-11-6 10:03:51
如果是28就不是闰年
from ( select hiredate older_date,
select to_char(sysdate,'hh:mi:ss') TIME from all_objects
select older_date,
not
5. 时间为null的用法
)
in ( '1', '7' )
select 1, TO_DATE(null) from dual;
18.不同时区的处理
SSSSS表示5位秒数
select months_between(to_date('01-31-1999','MM-DD-YYYY'),
return sysdate;
mon abbreviated mar
310 2002-11-6 10:03:51
yyyy four digits 1998
SELECT to_char(floor(TRUNC(936000/(60*60))/24))||'天'||to_char(mod(TRUNC(936000/(60*60)),24))||'小时' FROM DUAL
Days,
from dual;
2002-11-1 9:55:00 35786
显示Two Hundred Twenty-Two
日期 返回的是天 然后 转换为ss
begin
引此:?s=1635506cd5f48b1bc3adbe4cde96f227&threadid=104060&perpage=15&pagenumber=1
monday
where to_char( to_date('2002-02-01','yyyy-mm-dd')+rnum-1, 'D' )
Monday-Sunday, for format code DAY
yyyy four digits 1998
alter session set NLS_DATE_LANGUAGE = American
UNION
2.
select * from tabname
1
select to_char( NEW_TIME( sysdate, 'GMT','EST'), 'dd/mm/yyyy hh:mi:ss') ,sysdate
years,
SQL> select sysdate ,to_char(sysdate,'hh') from dual;
select to_char( NEW_TIME( sysdate, 'GMT','EST'), 'dd/mm/yyyy hh:mi:ss') ,sysdate
(
) days
return sysdate;
select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day','NLS_DATE_LANGUAGE = American') from dual;
trunc(sysdate) Days,
Next_day(date, day)
yyyy 99 0099
输入的格式要看你安装的ORACLE字符集的类型, 比如: US7ASCII, date格式的类型就是: '01-Jan-01'
month spelled out march
所以,当时间需要精确的时候,觉得to_char还是必要的
add_months(sysdate,-5*12) 在系统时间基础上延迟5年
return sysdate;
12 ) MONTHS,
add_months(sysdate,-5) 在系统时间基础上延迟5月
select to_char(sysdate,'hh:mi:ss') TIME from all_objects
1.
SYSDATE TO_CHAR(SYSDATE,'HH24')
可查看
今年的天数
SYSDATE TO_CHAR(SYSDATE,'HH24')
SYSDATE TO_CHAR(SYSDATE,'HH24')
from dual
end;
那么12月31号中午12点之后和12月1号的12点之前是不包含在这个范围之内的。
from
select * from V$NLS_PARAMETERS
insert into t values('2003-03-01','2003-03-03');
end;
16.
两个日期间的天数
select id, active_date from table1
20.
TRUNC(A*24*60 - 60*TRUNC(A*24)) Minutes,
select to_char(sys_date,'hh:mi:ss') from all_objects;
1.03225806451613
18.不同时区的处理
) days
处理月份天数不定的办法
TRUNC(A*24) Hours,
20.
日期和字符转换函数用法(to_date,to_char)
A,
============================================
yyyy 01 0001
Mon-Sun, for format code DY
日期和字符转换函数用法(to_date,to_char)
在前后分别调用DBMS_UTILITY.GET_TIME, 让后将结果相减(得到的是1/100秒, 而不是毫秒).
mod(mod(date2-date1, 365), 30)作为日.
日期 返回的是天 然后 转换为ss
newer_date,
select count(*)
注意要用TO_DATE(null)
SELECT EXTRACT(HOUR FROM TIMESTAMP '2001-02-16 2:38:40') from offer
select * from V$NLS_PARAMETERS
闰年的处理方法
1 2 3 4 5 6 7
from ( select hiredate older_date,
9.
7. 日期格式冲突问题
TO_DATE格式
24小时格式下时间范围为: 0:00:00 - 23:59:59....
年月日的处理
)
from
mon abbreviated mar
5秒钟一个间隔
12.
10. Next_day的用法
select
select to_char( to_date(222,'J'),'Jsp') from dual
5. 时间为null的用法
month spelled out march
注意:第一条记录的TIME 与最后一行是一样的
select to_char(sys_date,'hh:mi:ss') from all_objects;
获取年月日与此类似
from dual;
闰年的处理方法
trunc(
星期一
12小时格式下时间范围为: 1:00:00 - 12:59:59 ....
星期一
dd number 12
alter session set NLS_DATE_LANGUAGE = American
注意我这只是举了NLS_DATE_LANGUAGE,当然还有很多,
TO_DATE ('2002-08-26', 'YYYY-mm-dd', 'NLS_DATE_LANGUAGE = American')
insert into t values('2003-03-07','2003-03-08');
next_day(sysdate,6)是从当前开始下一个星期五。后面的数字是从星期日开始算起。
6.
years,
rrrr 99 1999
SYSDATE TO_CHAR(SYSDATE,'HH')
17.
select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day','NLS_DATE_LANGUAGE = American') from dual;
newer_date-
注意要用TO_DATE(null)
2003-10-13 19:35:21 07
select * from V$NLS_PARAMETERS
years,
)
sysdate+5/24/60 在系统时间基础上延迟5分钟
select add_months(trunc(sysdate,'year'), 12) - trunc(sysdate,'year') from dual
select months_between(to_date('01-31-1999','MM-DD-YYYY'),
SSSSS表示5位秒数
Select TO_DATE(FLOOR(TO_CHAR(sysdate,'SSSSS')/300) * 300,'SSSSS') ,TO_CHAR(sysdate,'SSSSS')
select months_between(to_date('02-01-1999','MM-DD-YYYY'),
monday
17.
select to_char( to_date(222,'J'),'Jsp') from dual
20.
trunc(months_between( newer_date, older_date )/12) YEARS,
2002-11-1 9:55:00 35786
02-01','yyyy-mm-dd')+1
================================================================================
(
not
上月末的日期:select last_day(add_months(sysdate, -1)) from dual;
4.
//
输入的格式要看你安装的ORACLE字符集的类型, 比如: US7ASCII, date格式的类型就是: '01-Jan-01'
2.
select to_char( NEW_TIME( sysdate, 'GMT','EST'), 'dd/mm/yyyy hh:mi:ss') ,sysdate
TO_DATE ('2002-08-26', 'YYYY-mm-dd', 'NLS_DATE_LANGUAGE = American')
注意:第一条记录的TIME 与最后一行是一样的
)
mod(trunc(months_between( newer_date, older_date )),
13.
from emp )
设置日期语言
Next_day(date, day)
可以建立一个函数来处理这个问题
return sysdate;
日 一 二 三 四 五 六
abs(
abs(
UNION
TO_DATE格式
1
order by decode(mode,'FIFO',1,-1)*to_char(rq,'yyyymmddhh24miss');
older_date
注意要用TO_DATE(null)
floor((date2-date1) /365) 作为年
13.
Month:
转此:?BoardID=42&ID=1769
Monday-Sunday, for format code DAY
sysdate - trunc(sysdate) A
------- ----
WHEN to_number(to_char(SYSDATE,'hh24')) BETWEEN 6 AND 11 THEN '上午'
---------------------------------------------------------------
Day:
TO_DATE格式
1.03225806451613
所以,当时间需要精确的时候,觉得to_char还是必要的
1-7, for format code D
dy abbreviated fri
older_date
from ( select rownum-1 rnum
dy abbreviated fri
(
) days
order by decode(mode,'FIFO',1,-1)*to_char(rq,'yyyymmddhh24miss');
闰年的处理方法
yyyy 01 0001
mod(trunc(months_between( newer_date, older_date )),
14.
Mon-Sun, for format code DY
-------------------- -----------------------
begin
求某天是星期几
14.
select to_char( to_date(222,'J'),'Jsp') from dual
rrrr 01 2001
select add_months(trunc(sysdate,'year'), 12) - trunc(sysdate,'year') from dual
select to_char(add_months(last_day(sysdate) +1, -2), 'yyyymmdd'),last_day(sysdate) from dual
TRUNC(A*24*60*60*100 - 100*TRUNC(A*24*60*60)) mSeconds
mod(mod(date2-date1, 365), 30)作为日.
日期和字符转换函数用法(to_date,to_char)
在前后分别调用DBMS_UTILITY.GET_TIME, 让后将结果相减(得到的是1/100秒, 而不是毫秒).
Days,
23.next_day函数
in ( '1', '7' )
month spelled out march
注意我这只是举了NLS_DATE_LANGUAGE,当然还有很多,
SQL> select sysdate ,to_char(sysdate,'hh24') from dual;
Year:
to_char( last_day( to_date('02' ¦ ¦ :year,'mmyyyy') ), 'dd' )
select to_char( NEW_TIME( sysdate, 'GMT','EST'), 'dd/mm/yyyy hh:mi:ss') ,sysdate
SSSSS表示5位秒数
to_date('12-31-1998','MM-DD-YYYY')) "MONTHS" FROM DUAL;
to_char( last_day( to_date('02' ¦ ¦ :year,'mmyyyy') ), 'dd' )
monday
//
add_months( older_date,years*12+months )
12小时格式下时间范围为: 1:00:00 - 12:59:59 ....
1.
SSSSS表示5位秒数
那么12月31号中午12点之后和12月1号的12点之前是不包含在这个范围之内的。
年初至今的天数:select ceil(sysdate - trunc(sysdate, 'year')) from dual;
1.03225806451613
where rownum <= to_date('2002-02-28','yyyy-mm-dd') - to_date('2002-
sysdate - trunc(sysdate) A
begin
select to_char( to_date(222,'J'),'Jsp') from dual
from ( select
1
select months_between(to_date('01-31-1999','MM-DD-YYYY'),
18.不同时区的处理
in ( '1', '7' )
select id, active_date from table1
trunc(sysdate) Days,
Year:
一年的第几天
---------------------------------------------------------------
to_date('12-31-1998','MM-DD-YYYY')) "MONTHS" FROM DUAL;
yy two digits 98
将数字转换为任意时间格式.如秒:需要转换为天/小时
本周星期一的日期:select trunc(sysdate,'day')+1 from dual
A,
select (sysdate-to_date('2003-12-03 12:55:45','yyyy-mm-dd hh24:mi:ss'))*24*60*60 from dual
3.
显示Two Hundred Twenty-Two
ALTER SESSION SET NLS_DATE_LANGUAGE='AMERICAN';
floor((date2-date1) /365) 作为年
where to_char( to_date('2002-02-01','yyyy-mm-dd')+rnum-1, 'D' )
from dual
10. Next_day的用法
SELECT to_char(floor(TRUNC(936000/(60*60))/24))||'天'||to_char(mod(TRUNC(936000/(60*60)),24))||'小时' FROM DUAL
)
newer_date-
mod(trunc(months_between( newer_date, older_date )),
mod(trunc(months_between( newer_date, older_date )),
trunc(sysdate) Days,
4.
select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day') from dual;
select months_between(to_date('02-01-1999','MM-DD-YYYY'),
SQL> select sysdate ,to_char(sysdate,'hh24') from dual;
)
select 1, TO_DATE(null) from dual;
5秒钟一个间隔
1 2 3 4 5 6 7
mod(mod(date2-date1, 365), 30)作为日.
older_date
16.
from dual
Day:
可查看
alter system set NLS_DATE_LANGUAGE = American
Mon-Sun, for format code DY
8.
next_day(sysdate,6)是从当前开始下一个星期五。后面的数字是从星期日开始算起。
11
day spelled out friday
trunc(months_between( newer_date, older_date )/12) YEARS,
SYSDATE TO_CHAR(SYSDATE,'HH24')
TRUNC(A*24*60*60*100 - 100*TRUNC(A*24*60*60)) mSeconds
select TO_CHAR(SYSDATE,'DDD'),sysdate from dual
select count(*)
mm number 03
newer_date,
add_months( older_date,years*12+months )
next_day(sysdate,6)是从当前开始下一个星期五。后面的数字是从星期日开始算起。
add_months(hiredate,rownum)+rownum newer_date
select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day') from dual;
下个星期一的日期
floor((date2-date1, 365) /30) 作为月
1.03225806451613
5. 时间为null的用法
将数字转换为任意时间格式.如秒:需要转换为天/小时
求某天是星期几
2003-10-13 19:35:21 19
mon abbreviated mar
day spelled out friday
'YYYY99 TO_C
年月日的处理
日 一 二 三 四 五 六
where rownum <= to_date('2002-02-28','yyyy-mm-dd') - to_date('2002-
SELECT CASE
abs(
可以建立一个函数来处理这个问题
dy abbreviated fri
所以,当时间需要精确的时候,觉得to_char还是必要的
trunc(sysdate) Days,
in ( '1', '7' )
Mon-Sun, for format code DY
输入的格式要看你安装的ORACLE字符集的类型, 比如: US7ASCII, date格式的类型就是: '01-Jan-01'
或者在to_date中写
rrrr 01 2001
select to_char(add_months(last_day(sysdate) +1, -2), 'yyyymmdd'),last_day(sysdate) from dual
12.
select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day','NLS_DATE_LANGUAGE = American') from dual;
dy abbreviated fri
create or replace function sys_date return date is
2003-10-13 19:35:21 19
select add_months(trunc(sysdate,'year'), 12) - trunc(sysdate,'year') from dual
2003-10-13 19:35:21 19
where rownum <= to_date('2002-02-28','yyyy-mm-dd') - to_date('2002-
Year:
select TO_CHAR(SYSDATE,'DDD'),sysdate from dual
TRUNC(A*24*60*60 - 60*TRUNC(A*24*60)) Seconds,
Select TO_DATE(FLOOR(TO_CHAR(sysdate,'SSSSS')/300) * 300,'SSSSS') ,TO_CHAR(sysdate,'SSSSS')
如果是28就不是闰年
select TO_CHAR(SYSDATE,'DDD'),sysdate from dual
alter session set NLS_DATE_LANGUAGE = American
1.
在前后分别调用DBMS_UTILITY.GET_TIME, 让后将结果相减(得到的是1/100秒, 而不是毫秒).
mm number 03
FROM dual;
7. 日期格式冲突问题
insert into t values('2003-03-02','2003-03-03');
日期和字符转换函数用法(to_date,to_char)
select s,e,e-s+1 total_days,
select floor(sysdate - to_date('20020405','yyyymmdd')) from dual;
day spelled out friday
yyyy与rrrr的区别
yy two digits 98
mm number 03
-- drop table t;
)
17.
select * from nls_session_parameters
yyyy与rrrr的区别
select * from tabname
找出今年的天数
begin
add_months(hiredate,rownum)+rownum newer_date
from dual;
输入的格式要看你安装的ORACLE字符集的类型, 比如: US7ASCII, date格式的类型就是: '01-Jan-01'
也可以这样
转此:?BoardID=42&ID=1769
9.
from ( select
21.计算小时,分,秒,毫秒
12.
floor((date2-date1, 365) /30) 作为月
(
to_date('12-31-1998','MM-DD-YYYY')) "MONTHS" FROM DUAL;
add_months(hiredate,rownum)+rownum newer_date
找出今年的天数
yy two digits 98
create or replace function sys_date return date is
not
newer_date,
Next_day(date, day)
select
-------------------- ---------------------
将数字转换为任意时间格式.如秒:需要转换为天/小时
注意:第一条记录的TIME 与最后一行是一样的
SELECT to_char(floor(TRUNC(936000/(60*60))/24))||'天'||to_char(mod(TRUNC(936000/(60*60)),24))||'小时' FROM DUAL
ddspth spelled out, ordinal twelfth
设置日期语言
TRUNC(A*24*60 - 60*TRUNC(A*24)) Minutes,
02-01','yyyy-mm-dd')+1
select
Days,
select
from all_objects
19.
SELECT Next_day(SYSDATE,'monday') FROM dual
处理月份天数不定的办法
那么12月31号中午12点之后和12月1号的12点之前是不包含在这个范围之内的。
23.next_day函数
A,
24小时格式下时间范围为: 0:00:00 - 23:59:59....
闰年的处理方法
WHEN to_number(to_char(SYSDATE,'hh24')) BETWEEN 17 AND 21 THEN '晚上'
1 2 3 4 5 6 7
'YYYY99 TO_C
也可以这样
5秒钟一个间隔
或者在to_date中写
Day:
mm number 03
newer_date,
或者在to_date中写
两个日期间的天数
UNION
12 ) MONTHS,
to_date('12-31-1998','MM-DD-YYYY')) "MONTHS" FROM DUAL;
日 一 二 三 四 五 六
dd number 12
order by decode(mode,'FIFO',1,-1)*to_char(rq,'yyyymmddhh24miss');
4.
select floor(sysdate - to_date('20020405','yyyymmdd')) from dual;
trunc(
)
select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day','NLS_DATE_LANGUAGE = American') from dual;
)
------- ----
12小时格式下时间范围为: 1:00:00 - 12:59:59 ....
trunc((e-s+1)/7)*5 + length(replace(substr('01111100111110',to_char(s,'d'),mod(e-s+1,7)),'0','')) work_days
8.
日期 返回的是天 然后 转换为ss
12.
5. 时间为null的用法
6.
转此:?BoardID=42&ID=1769
显示Two Hundred Twenty-Two
where to_char( to_date('2002-02-01','yyyy-mm-dd')+rnum-1, 'D' )
星期一
23.next_day函数
-------------------- ---------------------
select
sysdate - trunc(sysdate) A
TRUNC(A*24) Hours,
21.计算小时,分,秒,毫秒
2003-10-13 19:35:21 07
from all_objects
yyyy 99 0099
years,
create table t(s date,e date);
6.
SQL> select sysdate ,to_char(sysdate,'hh24') from dual;
select to_char(sysdate,'hh:mi:ss') TIME from all_objects
获得小时数
select to_char(sysdate,'hh:mi:ss') TIME from all_objects
select add_months(trunc(sysdate,'year'), 12) - trunc(sysdate,'year') from dual
------- ----
Month:
12 ) MONTHS,
18.不同时区的处理
16.
select (sysdate-to_date('2003-12-03 12:55:45','yyyy-mm-dd hh24:mi:ss'))*24*60*60 from dual
from
select
rrrr 99 1999
ALTER SESSION SET NLS_DATE_LANGUAGE='AMERICAN';
3.
'YYYY99 TO_C
2003-10-13 19:35:21 07
from emp )
order by decode(mode,'FIFO',1,-1)*to_char(rq,'yyyymmddhh24miss');
求某天是星期几
a_date between to_date('20011201','yyyymmdd') and to_date('20011231','yyyymmdd')
================================================================================
在前后分别调用DBMS_UTILITY.GET_TIME, 让后将结果相减(得到的是1/100秒, 而不是毫秒).
UNION
日 一 二 三 四 五 六
TO_DATE ('2002-08-26', 'YYYY-mm-dd', 'NLS_DATE_LANGUAGE = American')
select * from nls_session_parameters
ddspth spelled out, ordinal twelfth
310 2002-11-6 10:03:51
---------------------------------------------------------------
年月日的处理
23.next_day函数
TRUNC(A*24*60*60 - 60*TRUNC(A*24*60)) Seconds,
insert into t values('2003-03-05','2003-03-07');
TO_DATE格式
SYSDATE TO_CHAR(SYSDATE,'HH')
day spelled out friday
from dual
select count(*)
select to_char(add_months(last_day(sysdate) +1, -2), 'yyyymmdd'),last_day(sysdate) from dual
Year:
select add_months(trunc(sysdate,'year'), 12) - trunc(sysdate,'year') from dual
获取年月日与此类似
5秒钟一个间隔
end;
select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day') from dual;
Next_day(date, day)
yyyy 99 0099
yy two digits 98
如果是28就不是闰年
310 2002-11-6 10:03:51
SYSDATE TO_CHAR(SYSDATE,'HH')
17.
select * from tabname
alter system set NLS_DATE_LANGUAGE = American
查找2002-02-28至2002-02-01间除星期一和七的天数
Select TO_DATE(FLOOR(TO_CHAR(sysdate,'SSSSS')/300) * 300,'SSSSS') ,TO_CHAR(sysdate,'SSSSS')
TRUNC(A*24*60 - 60*TRUNC(A*24)) Minutes,
19.
注意要用TO_DATE(null)
星期一
from ( select rownum-1 rnum
8.
a_date between to_date('20011201','yyyymmdd') and to_date('20011231','yyyymmdd')
3.
获取年月日与此类似
select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day','NLS_DATE_LANGUAGE = American') from dual;
10. Next_day的用法
8.
rrrr 01 2001
24小时格式下时间范围为: 0:00:00 - 23:59:59....
20.
注意我这只是举了NLS_DATE_LANGUAGE,当然还有很多,
floor((date2-date1) /365) 作为年
from dual
select to_char(sys_date,'hh:mi:ss') from all_objects;
注意我这只是举了NLS_DATE_LANGUAGE,当然还有很多,
newer_date,
---------------------------------------------------------------
设置日期语言
2003-10-13 19:35:21 19
3.
)
to_date('12-31-1998','MM-DD-YYYY')) "MONTHS" FROM DUAL;
)
from t;
from ( select rownum-1 rnum
select months_between(to_date('02-01-1999','MM-DD-YYYY'),
TO_DATE ('2002-08-26', 'YYYY-mm-dd', 'NLS_DATE_LANGUAGE = American')
找出今年的天数
select months_between(to_date('02-01-1999','MM-DD-YYYY'),
monday
判断当前时间是上午下午还是晚上
2002-11-1 9:55:00 35786
select TO_CHAR(SYSDATE,'DDD'),sysdate from dual
sysdate+(5/24/60/60) 在系统时间基础上延迟5秒
7. 日期格式冲突问题
TRUNC(A*24*60*60*100 - 100*TRUNC(A*24*60*60)) mSeconds
select * from nls_session_parameters
1-7, for format code D
yyyy four digits 1998
获得小时数
older_date
insert into t values('2003-03-07','2003-03-09');
2003-10-13 19:35:21 07
select 1, TO_DATE(null) from dual;
本月的天数
TRUNC(A*24*60 - 60*TRUNC(A*24)) Minutes,
yyyy four digits 1998
ALTER SESSION SET NLS_DATE_LANGUAGE='AMERICAN';
SELECT to_char(last_day(SYSDATE),'dd') days FROM dual
9.
-------------------- -----------------------
1-7, for format code D
7. 日期格式冲突问题
)
where to_char( to_date('2002-02-01','yyyy-mm-dd')+rnum-1, 'D' )
from
yyyy 01 0001
sysdate - trunc(sysdate) A
11
-------------------- -----------------------
select to_char(sys_date,'hh:mi:ss') from all_objects;
------- ----
)
abs(
select older_date,
年月日的处理
yyyy 01 0001
24小时格式下时间范围为: 0:00:00 - 23:59:59....
Monday-Sunday, for format code DAY
SELECT EXTRACT(HOUR FROM TIMESTAMP '2001-02-16 2:38:40') from offer
select floor(sysdate - to_date('20020405','yyyymmdd')) from dual;
A,
not
from ( select rownum-1 rnum
-------------------- -----------------------
10. Next_day的用法
查找2002-02-28至2002-02-01间除星期一和七的天数
Day:
select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day') from dual;
查找2002-02-28至2002-02-01间除星期一和七的天数
select id, active_date from table1
设置日期语言
将数字转换为任意时间格式.如秒:需要转换为天/小时
获取年月日与此类似
to_char( last_day( to_date('02' ¦ ¦ :year,'mmyyyy') ), 'dd' )
-- 这里假定日期都是不带时间的,否则在所有日期前加trunc即可。
newer_date-
可以建立一个函数来处理这个问题
trunc(
select id, active_date from table1
from all_objects
END
insert into t values('2003-02-01','2003-03-31');
from ( select
TRUNC(A*24*60*60 - 60*TRUNC(A*24*60)) Seconds,
21.计算小时,分,秒,毫秒
newer_date,
今天是今年的第几周 :select to_char(sysdate,'fmww') from dual
//
add_months( older_date,years*12+months )
日期 返回的是天 然后 转换为ss
11
end;
yyyy与rrrr的区别
02-01','yyyy-mm-dd')+1
一年的第几天
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://www.juheyunku.com/sql/oracle/3251.shtml
相关文章
热门TAG
命令 权重 外链 企业网站 白帽 php 织梦教程 dedecms修改内容 javascript 织梦 功能 标签 调用 详解 服务器 网站流量 实例解析 Dedecms 织梦cms HTML tags标签 python jquery教程 jquery windows SEO优化 蜘蛛 搜索引擎 网站收录 JSP最新文章
-
Window下Oracle Database 11g 发行
时间:2020-12-29
-
Oracle如何实现like多个值的
时间:2020-12-29
-
maven添加oracle依赖失败问题
时间:2020-12-29
-
OracleRAC基本概念及入门
时间:2020-12-29
-
Azure File Storage 基本用法
时间:2020-12-26
-
Oracle 权限(grant revoke)
时间:2020-12-26
-
Azure Queue Storage 基本用法
时间:2020-12-26
-
如何对比迁移前后的Orac
时间:2020-12-26
热门文章
-
Azure Queue Storage 基本用法 Azure Storage 之
时间:2020-12-26
-
Oracle存储过程编程详解
时间:2020-12-07
-
win10下oracle 11g安装图文教程
时间:2020-12-25
-
oracle 数据库学习 基本结构介绍
时间:2020-12-13
-
Azure File Storage 基本用法 Azure Storage 之 F
时间:2020-12-26
-
windows使用sqlpus连接oracle 数据库的教程图
时间:2020-12-25
-
Window下Oracle Database 11g 发行版2安装教程
时间:2020-12-29
-
Oracle解锁的方式介绍
时间:2020-12-14
-
linux下oracle设置开机自启动实现方法
时间:2020-12-13
-
Oracle学习记录之使用自定义函数和触发器
时间:2020-12-07
