기금넷 공식사이트 - 주식 시세 - Oracle 날짜 함수란 무엇입니까?
Oracle 날짜 함수란 무엇입니까?
ORACLE 날짜 및 시간 함수의 전체 목록
TO_DATE 형식(예: 2007-11-02 13:45:25 시간)
연도 :
yy 두 자리 두 자리 연도 표시 값: 07
yyy 세 자리 세 자리 연도 표시 값: 007
yyyy 네 자리 네 자리 연도 표시 값: 2007 p>
월:
mm 숫자 두 자리 월 표시 값: 11
mon 약어 문자 집합은 표시 값을 나타냅니다. 영어 버전인 경우 nov를 표시합니다.
월 문자 집합은 표시된 값을 나타냅니다. 영어 버전인 경우 November를 표시합니다.
Day: p>
dd 숫자 해당 월의 날짜 표시 값: 02 p>
ddd 숫자 해당 연도의 표시 값: 02
dy 축약형 축약형 표시 요일 값: Friday, 영문인 경우 frith를 표시합니다.
day를 철자하여 표시합니다. 요일은 전체가 쓰여지며 표시되는 값은 Friday입니다. 영어 버전인 경우 friday로 표시됩니다.
ddspth는 철자법, 서수는 12번째입니다.
시간:
hh 두 자리 12시간 표시 값: 01 p>
hh24 두 자리 24시간 표시 값: 13
분:
mi 두 자리 60 표시 값: 45
초: p>
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- p>
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
) p>
)
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 p>
이중에서 ;
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
일일이삼사오십
------------ -- ------------------------- p>
선택(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-
- 관련 기사