Oracle 날짜 함수 안내
(1)SYSDATE 와 TRUNC
두 개의 Oracle 날짜 함 수 는 Oracle 서버 시스템 의 날짜 와 소수 부분의 기능 을 차단 합 니 다.다음 동작 관찰:
create table test_date (name varchar2(20), p_date date);
insert into test_date values(‘name1',sysdate);
select * from test_date;
select * from test_date where p_date='25-10 월-05 일';
select * from test_date where trunc(p_date)='25-10 월-05 일';
Oracle 시스템 에서 SYSDATE 로 얻 은 것 은 날짜 뿐만 아니 라 시간 정보 도 포함 되 어 있 으 며 시간 정 보 는 사실상 유 략 일 데이터 의 소수 부분 을 나타 낸다.
(2)ADD_MONTHS
Oracle 날짜 함 수 는 제 공 된 날짜 와 달 차이 가 있 는 날 짜 를 되 돌려 줍 니 다.함수 에서 미래 나 이전의 달 수 를 보 여 줍 니 다.문법 은 다음 과 같다.
ADD_MONTHS(시작 일,증감 일수)
select add_months('26-10 월-05',2)from dual;
select add_months('26-10 월-05',-2)from dual;
(3)LAST_DAY
주어진 날 짜 를 포함 한 그 달의 마지막 날 을 되 돌려 줍 니 다.문법:
LAST_DAY(날짜)
select last_day('21-2 월-80')from dual;
(4)MONTHS_BETWEEN
이틀 간 의 달 로 돌아가다.문법:
MONTHS_BETWEEN(늦 은 날짜,빠 른 날짜)
select months_between('12-10 월-05','12-9 월-03')from dual;
다음은 약간의 보충 자료 입 니 다.비록 측 하지만 참고 하 세 요.
Oacle 에는 날짜 에 관 한 함수 가 많 습 니 다.
예:
1、add_months()는 한 날짜 값 에서 몇 달 동안 증가 하거나 감소 하 는 데 쓰 인 다 date_value:=add_months(date_value,number_of_months) 예: SQL> select add_months(sysdate,12) Next Year from dual; Next Year ---------- 13-11 월-04 SQL> select add_months(sysdate,112) Last Year from dual; Last Year ---------- 13-3 월 -13 SQL>
2、current_date()현재 시간 대 에 있 는 현재 날 짜 를 되 돌려 줍 니 다. date_value:=current_date SQL> column sessiontimezone for a15 SQL> select sessiontimezone,current_date from dual; SESSIONTIMEZONE CURRENT_DA --------------- ---------- +08:00 13-11 월-03 일 SQL> alter session set time_zone=-11:00 2 / 세 션 이 변경 되 었 습 니 다. SQL> select sessiontimezone,current_timestamp from dual; SESSIONTIMEZONE CURRENT_TIMESTAMP --------------- ------------------------------------ -11:00 12-11 월-03 04.59.13.668000 오후. -11: 00 SQL>
3、current_timestamp()는 timestamp 로 with time zone 데이터 형식 은 현재 시간 대 에 있 는 현재 날 짜 를 되 돌려 줍 니 다. timestamp_with_time_zone_value:=current_timestamp([timestamp_precision]) SQL> column sessiontimezone for a15 SQL> column current_timestamp format a36 SQL> select sessiontimezone,current_timestamp from dual; SESSIONTIMEZONE CURRENT_TIMESTAMP --------------- ------------------------------------ +08:00 13-11 월-03 일 11.56.28.160000 오전. +08: 00 SQL> alter session set time_zone=-11:00 2 / 세 션 이 변경 되 었 습 니 다. SQL> select sessiontimezone,current_timestamp from dual; SESSIONTIMEZONE CURRENT_TIMESTAMP --------------- ------------------------------------ -11:00 12-11 월-03 04.58.00.243000 오후. -11: 00 SQL>
4.dbtimezone()은 시간 대 를 되 돌려 줍 니 다. varchar_value:=dbtimezone SQL> select dbtimezone from dual; DBTIME ------ -07:00 SQL>
5.extract()에서 날짜 나 간격 값 의 필드 값 을 찾 습 니 다. date_value:=extract(date_field from [datetime_value|interval_value]) SQL> select extract(month from sysdate) This Month from dual; This Month ---------- 11 SQL> select extract(year from add_months(sysdate,36)) 3 Years Out from dual; 3 Years Out ----------- 2006
6、last_day()날짜 인자 가 포 함 된 달의 마지막 날 짜 를 되 돌려 줍 니 다. date_value:=last_day(date_value) SQL> select last_day(date2000-02-01) Leap Yr? from dual; Leap Yr? ---------- 29-2 월 -00 SQL> select last_day(sysdate) Last day of this month from dual; Last day o ---------- 30-11 월-03 일 SQL>
7.localtimestamp()는 세 션 의 날짜 와 시간 을 되 돌려 줍 니 다. timestamp_value:=localtimestamp SQL> column localtimestamp format a28 SQL> select localtimestamp from dual; LOCALTIMESTAMP ---------------------------- 13-11 월-03 일 12.09.15.433000 오후. SQL> select localtimestamp,current_timestamp from dual; LOCALTIMESTAMP CURRENT_TIMESTAMP ---------------------------- ------------------------------------ 13-11 월-03 일 12.09.31.006000 13-11 월-03 일 12.09.31.006000 오후. +08: 오후. 00 SQL> alter session set time_zone=-11:00; 세 션 이 변경 되 었 습 니 다. SQL> select localtimestamp,to_char(sysdate,DD-MM-YYYY HH:MI:SS AM) SYSDATE from dual; LOCALTIMESTAMP SYSDATE ---------------------------- ------------------------ 12-11 월-03 05.11.31.259000 13-11-2003 12:11:31 오후. 오후. SQL>
8、months_between()두 날짜 사이 의 월 수 를 판단 합 니 다. number_value:=months_between(date_value,date_value) SQL> select months_between(sysdate,date1971-05-18) from dual; MONTHS_BETWEEN(SYSDATE,DATE1971-05-18) ---------------------------------------- 389.855143 SQL> select months_between(sysdate,date2001-01-01) from dual; MONTHS_BETWEEN(SYSDATE,DATE2001-01-01) ---------------------------------------- 34.4035409 SQL>
9、next_day()는 날짜 값 을 지정 하고 두 번 째 매개 변수 가 지적 한 날 에 처음으로 나타 난 날짜 값 을 되 돌려 줍 니 다.(해당 날 의 이름 문자열 을 되 돌려 야 합 니 다) 본 고 는 Oacle 중국 연맹 을 참고 한다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Oracle 생성 향후 3일간의 전체 시점 (단계 상세)수요: X 좌표축 시간은 모두 정시 시간으로 앞으로 3일 동안의 예측을 보여준다(x 축은 앞으로 3일 동안의 정시 시간을 보여준다), 3시간마다 한 눈금, 가로 좌표는 모두 24개의 눈금을 보여준다 1단계: 현재 시...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.