기금넷 공식사이트 - 주식 시세 - Oracle 날짜 함수란 무엇입니까?

Oracle 날짜 함수란 무엇입니까?

ORACLE 날짜 및 시간 함수의 전체 목록

TO_DATE 형식(예: 2007-11-02 13:45:25 시간)

연도 :

yy 두 자리 두 자리 연도 표시 값: 07

yyy 세 자리 세 자리 연도 표시 값: 007

yyyy 네 자리 네 자리 연도 표시 값: 2007

월:

mm 숫자 두 자리 월 표시 값: 11

mon 약어 문자 집합은 표시 값을 나타냅니다. 영어 버전인 경우 nov를 표시합니다.

월 문자 집합은 표시된 값을 나타냅니다. 영어 버전인 경우 November를 표시합니다.

Day:

dd 숫자 해당 월의 날짜 표시 값: 02

ddd 숫자 해당 연도의 표시 값: 02

dy 축약형 축약형 표시 요일 값: Friday, 영문인 경우 frith를 표시합니다.

day를 철자하여 표시합니다. 요일은 전체가 쓰여지며 표시되는 값은 Friday입니다. 영어 버전인 경우 friday로 표시됩니다.

ddspth는 철자법, 서수는 12번째입니다.

시간:

hh 두 자리 12시간 표시 값: 01

hh24 두 자리 24시간 표시 값: 13

분:

mi 두 자리 60 표시 값: 45

초:

ss 두 자리 60 16진수 표시 값: 25

기타

Q 자리 분기별 표시 값: 4

WW 자리는 해당 값을 표시합니다. 현재 연도의 주: 44

W 숫자는 이번 달의 주 값을 표시합니다: 1

24시간 형식의 시간 범위는 0:00:00입니다. - 23:59:59....

12시간 형식의 시간 범위는 1:00:00 - 12:59:59....

1 . 날짜 및 문자 변환 기능 사용법(to_date, to_char)

select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as nowTime from double; /p>

dual에서 nowYear로 to_char(sysdate,'yyyy')를 선택합니다. //당시의 연도를 가져옵니다.

select to_char(sysdate)

, 'mm') as nowMonth from Dual; //현재 월을 가져옵니다

select to_char(sysdate, 'dd') as nowDay from Dual; >

듀얼에서 nowHour로 to_char(sysdate,'hh24')를 선택합니다. //시간의 시간을 가져옵니다.

dual에서 nowMinute로 to_char(sysdate,'mi')를 선택합니다. //Get 시간의 분

select to_char(sysdate,'ss') as nowSecond from Dual; //시간의 초 가져오기

select to_date('2004-05-07 13:23:44','yyyy- mm-dd hh24: mi: ss') from Dual//

2.

select to_char( to_date(222,'J' ),'Jsp') from 듀얼

p>

이백이십이 표시

3. 특정 요일을 찾으세요

이중에서 to_char(to_date('2002-08-26','yyyy-mm -dd'),'day')를 선택합니다.

월요일

to_char(to_date를 선택합니다. ('2002-08-26','yyyy-mm-dd'), 'day', 'NLS_DATE_LANGUAGE = American') from Dual;

월요일

날짜 언어 설정

ALTER SESSION SET NLS_DATE_LANGUAGE='AMERICAN';

이 작업도 수행할 수 있습니다.

TO_DATE ('2002-08-26', 'YYYY-mm-dd ', 'NLS_DATE_LANGUAGE = 미국식')

4. 2일 기간의 일수

dual에서 Floor(sysdate - to_date('20020405', 'yyyymmdd'))를 선택합니다. ;

5. null 시간 사용

table1에서 id, active_date 선택

UNION

1, TO_DATE(null) 선택 Dual;

TO_DATE(null) 사용에 주의하세요

6. 월 차이

to_date('20011201','yyyymmdd')와 to_date( '20011231','yyyymmdd')

그러면 12월 31일 낮 12시 12월 1일 12시 이후와 12시 이전은 이 범위에 포함되지 않습니다.

그래서 시간이 정확해야 할 때는 여전히 to_char가 필요하다고 생각합니다

7. 날짜 형식 충돌 문제

입력 형식이 ORACLE에 따라 다릅니다. 문자 집합 유형(예: US7ASCII), 날짜 형식 유형: '01-Jan-01'

alter system set NLS_DATE_LANGUAGE = American

alter 세션 세트 NLS_DATE_LANGUAGE = 미국

p>

또는 to_date를 입력하세요

select to_char(to_date('2002-08-26', 'yyyy-mm-dd'), 'day', 'NLS_DATE_LANGUAGE = American') from Dual;

저는 NLS_DATE_LANGUAGE만 언급했음을 참고하세요. 물론 더 많은 것들이 있습니다.

볼 수 있습니다

nls_session_parameters에서 * 선택

V$NLS_PARAMETERS에서 * 선택

8.

count(*) 선택

from( rownum 선택 -1 rnum

all_objects에서

여기서 rownum lt;= to_date('2002-02-28','yyyy-mm-dd') - to_date('2002-

02-01','yyyy- mm-dd') 1

)

여기서 to_char( to_date('2002-02-01', 'yyyy- mm-dd') rnum-1, 'D' )

not in ('1', '7')

2002년 2월 28일부터 2002년 2월 28일까지의 일수를 구하세요. 2002-02-01 월요일과 일요일 제외

전후에 DBMS_UTILITY.GET_TIME을 호출한 다음 결과를 뺍니다(결과는 밀리초가 아니라 1/100초입니다).

9. 월 찾기

month_between (to_date('01-31-1999','MM-DD-YYYY'),to_date('12-31-1998','MM-DD-YYYY)를 선택하세요. ')) 듀얼에서 "월";

1

month_between(to_date('02-01-1999','MM-DD-YYYY'),to_date('12) 선택 -31-1998','MM-DD-YYYY') ) "MONTHS" FROM DUAL;

1.03225806451613

10. Next_day 사용법

Next_day( 날짜, 요일)

월요일-일요일, 형식 코드 DAY의 경우

월-일, 형식 코드 DY의 경우

1-7, 형식 코드 D의 경우

11

all_objects에서 to_char(sysdate,'hh:mi:ss') TIME을 선택하세요.

참고:

첫 번째 레코드의 TIME은 마지막 행과 동일합니다.

이 문제를 처리하는 함수를 만들 수 있습니다.

함수 생성 또는 교체 sys_date 반환 날짜는

시작

return sysdate;

end;

all_objects에서 to_char(sys_date,'hh:mi:ss') 선택;

12 .시간 수 가져오기

extract()는 날짜 또는 간격 값의 필드 값을 찾습니다.

SELECT EXTRACT(HOUR FROM TIMESTAMP '2001-02-16 2:38 :40') 제안

SQLgt; 듀얼에서 sysdate, to_char(sysdate,'hh') 선택;

SYSDATE TO_CHAR(SYSDATE,'HH')

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

2003-10 -13 19:35:21 07

SQLgt; 듀얼에서 sysdate , to_char(sysdate,'hh24') 선택;

SYSDATE TO_CHAR(SYSDATE,'HH24')

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

2003-10-13 19:35:21 19

13. 연도, 월, 일 처리

old_date 선택,

newer_date,

년,

월,

abs(

trunc(

newer_date-

추가_개월( 이전_날짜, 년*12개월 )

)

)일

부터( 선택

trunc(months_between( newer_date, old_date )/ 12) YEARS,

mod(trunc(months_between( newer_date, old_date )), 12) MONTHS,

newer_date,

older_date

from (

hiredate old_date 선택, add_months(hiredate,rownum) rownum newer_date

from emp

)

)

14. 월의 가변 일수를 처리하는 방법

select to_char(add_months(last_day(sysdate) 1, -2), ' yyyymmdd'), last_day(sysdate) from double

16. 올해의 일수를 알아보세요.

select add_months(trunc(sysdate,'year'), 12) - trunc (시스템날짜,'연도')

) from double

윤년 처리 방법

to_char( last_day( to_date('02' | | : year, 'mmyyyy') ), 'dd' )

28이면 윤년이 아니다

17. yyyy와 rrrr의 차이

'YYYY99 TO_C

---- --- ----

yyyy 99 0099

rrrr 99 1999

yyyy 01 0001

rrrr 01 2001

18. 다른 시간대 처리

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

이중에서 ;

19.5초 간격

TO_DATE(FLOOR(TO_CHAR(sysdate,'SSSSS')/300) * 300,'SSSSS'), TO_CHAR 선택 (sysdate,'SSSSS ')

이중에서

2002-11-1 9:55:00 35786

SSSSS는 5자리 초를 나타냅니다.

20 .연중 일

듀얼에서 TO_CHAR(SYSDATE,'DDD'), sysdate 선택

310 2002-11-6 10:03:51

21. 시간, 분, 초, 밀리초를 계산합니다.

선택

일,

A,

TRUNC (A*24 ) 시간,

TRUNC(A*24*60 - 60*TRUNC(A*24)) 분,

TRUNC(A*24*60*60 - 60*TRUNC( A*24*60)) 초,

TRUNC(A*24*60*60*100 - 100*TRUNC(A*24*60*60)) m초

에서

(

선택

trunc(sysdate) 일,

sysdate - trunc(sysdate) A

듀얼에서

)

탭 이름에서 * 선택

decode(mode,'FIFO',1,-1)*to_char( rq,'yyyymmddhh24miss ');

//

floor((date2-date1) /365)(연도)

floor((date2-date1, 365) ) /30) 월로

d(mod(date2-date1, 365), 30) 일로.

23.next_day 함수는 다음 주의 날짜를 반환하며 일은 1입니다. -7 또는 일요일 - 토요일, 1은 일요일을 의미합니다.

next_day(sysdate, 6)는 현재 금요일부터 시작하는 다음 금요일입니다. 다음 숫자는 일요일부터의 숫자입니다.

1 2 3 4 5 6 7

일일이삼사오십

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

선택(sysdate-to_date ('2003-12-03 12:55:45','yyyy-mm-dd hh24:mi:ss'))*24*60*60 from ddual

날짜는 일 단위로 반환되며, 그런 다음 ss로 변환

24, round [가장 가까운 날짜로 반올림](일: 가장 가까운 일요일로 반올림)

select sysdate S1,

round( sysdate) S2,

round(sysdate, '연도') YEAR,

round(sysdate, '월') MONTH,

round(sysdate,' day') 이중에서 DAY

25, trunc[가장 가까운 날짜로 잘림(일 단위)], 날짜 유형이 반환됩니다.

sysdate S1 선택,

trunc(sysdate) S2, //시, 분, 초 없이 현재 날짜를 반환합니다.

trunc(sysdate,'year') YEAR, //시 없이 올해 1월 1일 현재 날짜를 반환합니다. , 분, 초

trunc(sysdate,'month') MONTH, //시, 분, 초 없이 이번 달의 1일을 반환합니다.

trunc(sysdate, 'day ') DAY //시, 분, 초 없이 이번 주의 일요일을 반환합니다.

dual에서

26, 날짜 목록의 가장 늦은 날짜를 반환합니다.

듀얼에서 가장 큰 항목('01-04-04', '04-1월-04', '10-2월-04')을 선택합니다.

27. : Oracle 시차는 일 단위이므로 연, 월, 일로 변환됩니다.

select Floor(to_number(sysdate-to_date('2007-11-02 15:55:03','yyyy- mm-dd hh24 :mi:ss'))/365) 이중 //시차 연도의 기간 연도

select ceil(moths_between(sysdate-to_date('2007-11-02 15:55) 03','yyyy -mm-dd hh24:mi:ss'))) as spanMonths from Dual //시차 - 월

select Floor(to_number(sysdate-to_date('2007-11-02) 15:55:03' ,'yyyy-mm-dd hh24:mi:ss'))) as spanDays from 듀얼 //시차 - 일수

select Floor(to_number(sysdate-to_date('2007) -11-02 15:55) :03','yyyy-mm-dd hh24:mi:ss'))*24) sp로

이중 시간 //시차-시간

select Floor(to_number(sysdate-to_date('2007-11-02 15:55:03','yyyy-mm-dd hh24:mi:ss') ) )*24*60) as spanMinutes from 듀얼 //시차 - 분

select Floor(to_number(sysdate-to_date('2007-11-02 15:55:03','yyyy-mm) -dd hh24:mi:ss'))*24*60*60) 이중 //시간 차이 - 초

28 업데이트 시간

참고: Oracle 시간 추가 일수가 단위이고 변동금액이 n이므로 월, 일로 변환됩니다

select to_char(sysdate,'yyyy-mm-dd hh24:mi: ss'),to_char(sysdate n*365,' yyyy-mm-dd hh24: mi: ss') as newTime from Dual //시간 변경 - 연도

select to_char(sysdate, 'yyyy-mm -dd hh24: mi: ss'), add_months( sysdate, n) as newTime from Dual //시간 변경 - 월

select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss' ),to_char(sysdate n,'yyyy-mm- dd hh24:mi:ss') as newTime from Dual //시간-요일 변경

select to_char(sysdate,'yyyy-mm-dd hh24: mi:ss'),to_char(sysdate n/24 ,'yyyy-mm-dd hh24:mi:ss') as newTime from 듀얼 //시간-시간 변경

select to_char(sysdate,'yyyy -mm-dd hh24:mi:ss'), to_char(sysdate n/24/60,'yyyy-mm-dd hh24:mi:ss') as newTime from 듀얼 //시간 변경 - 분

select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'), to_char(sysdate n/24/60/60, 'yyyy-