반응형
DBMS_RANDOM으로 Oracle에서 임의 날짜 생성
익명의 블록이 있습니다.
DECLARE
V_DATA DATE;
BEGIN
V_DATA := '01-GEN-2000';
HR.STATISTICHE.RATINGOPERATORI (V_DATA);
COMMIT;
END;
날짜를 임의로 생성하고 싶습니다.어떻게 해야 할까?
아래 쿼리에 표시된 대로 두 날짜 사이의 임의 날짜를 생성할 수 있습니다.랜덤 날짜는 2000년 1월 1일과 1999년 12월 31일 사이에 생성됩니다.
SELECT TO_DATE(
TRUNC(
DBMS_RANDOM.VALUE(TO_CHAR(DATE '2000-01-01','J')
,TO_CHAR(DATE '9999-12-31','J')
)
),'J'
) FROM DUAL;
또는 사용할 수 있습니다.
SELECT TO_DATE (
TRUNC (
DBMS_RANDOM.VALUE (2451545, 5373484)
)
, 'J'
)
FROM DUAL
위의 예에서 첫 번째 값은 01-Jan-2000이고 두 번째 값 ID는 31-dec-9999입니다.
사용할 수 있는 임의 날짜를 생성하는 방법
select to_date('2010-01-01', 'yyyy-mm-dd')+trunc(dbms_random.value(1,1000)) from dual
또는 임의의 날짜/시간에 대해
select to_date('2010-01-01', 'yyyy-mm-dd')+dbms_random.value(1,1000) from dual
논리를 보려면 이 코드를 사용할 수도 있습니다.
create or replace procedure genDate(result out nvarchar2) IS
year number;
month number;
day number;
Begin
year:=FLOOR(DBMS_RANDOM.value(2000,2100));
month:=FLOOR(DBMS_RANDOM.value(1,12));
IF month=2 and (year/4)=0 and (year/100)!=0 then
day:=FLOOR(DBMS_RANDOM.value(1,29));
ELSIF month=2 or (year/100)=0 then
day:=FLOOR(DBMS_RANDOM.value(1,28));
ELSIF MOD(month,2)=1 then
day:=FLOOR(DBMS_RANDOM.value(1,31));
ELSIF MOD(month,2)=0 and month!=2 then
day:=FLOOR(DBMS_RANDOM.value(1,30));
END IF;
result:=month||'-'||day||'-'||year;
End;
여기에 365일의 수량이 있는 지금부터 다시 날짜를 생성하는 옵션이 하나 더 있습니다. 'DD.MM.YYY'- 마스크
to_char(sysdate-dbms_random.value()*365, 'DD.MM.YYYY')
테스트를 위해 직원 데이터를 생성해야 했습니다.각 직원은 16세에서 65세 사이의 생년월일과 16세 생일과 SYSDATE 사이의 고용 날짜가 필요했습니다.어떻게...
FUNCTION randomDateInRange(alpha IN DATE, omega IN DATE) RETURN DATE IS
BEGIN
RETURN alpha + DBMS_RANDOM.VALUE(0, omega - alpha);
END;
...그리고 나서, 이 기능을 사용하려면...
-- an employee can be any age from 16 to 65 years of age
DoB := randomDateInRange(
SYSDATE - INTERVAL '65' YEAR,
SYSDATE - INTERVAL '16' YEAR
);
-- an employee could have been hired any date since their sixteenth birthday
DoH := randomDateInRange(
DoB + INTERVAL '16' YEAR,
SYSDATE
);
언급URL : https://stackoverflow.com/questions/17449999/generate-a-random-date-in-oracle-with-dbms-random
반응형
'programing' 카테고리의 다른 글
MapStruct 구현이 Spring Boot Web Application에서 작동하지 않습니다. (0) | 2023.07.21 |
---|---|
스프링 부트 jpa 종속성을 추가할 때 이름이 'entityManagerFactory'인 빈을 생성하는 동안 오류가 발생했습니다. (0) | 2023.07.21 |
동일한 시스템에 여러 Python 버전이 있습니까? (0) | 2023.07.21 |
exp 명령은 원격 DB 테이블을 내보낼 호스트 및 포트를 허용합니다. (0) | 2023.07.21 |
java persistence native sql 매개 변수를 허용하지 않음 (0) | 2023.07.21 |