RAND 함수 활용하여 랜덤 일자(날짜), 시간 생성하기
포스팅 개요
Query를 작성하다 보면 난수(Rand)를 생성하는 함수를 활용하여 작업할 경우가 많습니다. 오늘은 간단한 최소~최대 구간별 난수 생성 방법과 기준 일자 또는 기준 시간을 기점으로 랜덤 일자, 시간을 생성하는 방법에 대해 알아보겠습니다.
예제 쿼리
예제1. 최소 ~ 최대 구간별 난수 생성 방법입니다.
DECLARE @R_Min INT, -- 최소 수치
@R_Max INT -- 최대 수치
-- 변수 설정
SET @R_Min = 1
SET @R_Max = 100
-- 구간별 난수 생성
SELECT CAST(((@R_Max + 1) - @R_Min) * RAND() + @R_Min AS INT)
예제2. 기준 일자 이후 랜덤 일자(날짜) 생성 방법입니다.
DECLARE @R_Min INT, -- 최소 일
@R_Max INT, -- 최대 일
@R_Date DATE -- 기준 일
-- 변수 설정
SET @R_Min = 30
SET @R_Max = 90
SET @R_Date = '2023-02-01'
-- 기준일 이후 30일부터 90일까지 랜덤 일자 생성
SELECT @R_Date, DATEADD(d, CAST(((@R_Max + 1) - @R_Min) * RAND() + @R_Min AS INT), @R_Date)
예제3. 기준 시간 이후 랜덤 시간 생성 방법입니다.
DECLARE @R_Min INT, -- 최소 시간
@R_Max INT, -- 최대 시간
@R_Time DATETIME -- 기준 시간
-- 변수 설정
SET @R_Min = 900 --15분x60초
SET @R_Max = 3600 --60분x60초
SET @R_Time = '2023-02-01 09:00:00'
-- 기준 시간 이후 15분부터 60분 사이의 랜덤 시간 생성
SELECT @R_Time, DATEADD(s, CAST(((@R_Max + 1) - @R_Min) * RAND() + @R_Min AS INT), @R_Time)
반응형
참고 링크
'DataBase > MS-SQL' 카테고리의 다른 글
[MS-SQL] Microsoft SQL Server Express 모든 버전(~2022) 다운로드 설치 링크 (0) | 2024.12.31 |
---|---|
[MS-SQL] 문자열에서 숫자만 추출하기 (스칼라 반환 함수) (0) | 2023.01.13 |
[MS-SQL] 서브 쿼리 검색 조건 'WHERE EXISTS' 절의 구조와 활용 (0) | 2023.01.12 |
[MS-SQL] 특정 컬럼에서 소수점이 존재하는 레코드 조회하기 (0) | 2023.01.05 |
[MS-SQL] Create Table 생략하고 임시 테이블 생성 (Select Into) (0) | 2023.01.04 |
[MS-SQL] 그룹별 ROW(행) 문자열 결과 합치기 (STUFF, FOR XML PATH 활용) (0) | 2023.01.03 |
[MS-SQL] 중복 테이블 삭제 후에 다시 테이블 생성(CREATE)하기 (0) | 2023.01.02 |
[MS-SQL] 다중 레코드 INSERT 하기 (0) | 2022.12.24 |
댓글